synabun 2.0.9 → 2.1.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 (679) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +25 -2
  3. package/THIRD-PARTY-LICENSES.md +68 -4
  4. package/bin/synabun.js +71 -24
  5. package/docs/whatsapp.md +2 -2
  6. package/hooks/claude-code/pre-websearch.mjs +12 -1
  7. package/hooks/claude-code/shared.mjs +5 -0
  8. package/hooks/claude-code/stop.mjs +1 -1
  9. package/launcher.mjs +9 -3
  10. package/lib/claude-hooks.js +172 -18
  11. package/lib/client-config-repair.js +17 -8
  12. package/lib/desktop-app.js +7 -1
  13. package/lib/external-tools.js +1 -1
  14. package/lib/first-launch-protection.js +57 -12
  15. package/lib/mcp-dist.js +176 -0
  16. package/lib/release-npm-ci.mjs +138 -0
  17. package/lib/release-publish.mjs +91 -0
  18. package/lib/release-scan.mjs +50 -0
  19. package/lib/server-crash-record.js +123 -0
  20. package/lib/server-exit.js +318 -0
  21. package/lib/server-supervisor.js +508 -0
  22. package/lib/start-launcher.js +43 -5
  23. package/lib/tools-cli.js +45 -0
  24. package/lib/update-snapshot.js +228 -0
  25. package/lib/virustotal.mjs +192 -0
  26. package/lib/windows-crash-event.js +269 -0
  27. package/mcp-server/dist/http.d.ts +20 -1
  28. package/mcp-server/dist/http.d.ts.map +1 -1
  29. package/mcp-server/dist/http.js +59 -12
  30. package/mcp-server/dist/http.js.map +1 -1
  31. package/mcp-server/dist/index.d.ts +33 -27
  32. package/mcp-server/dist/index.d.ts.map +1 -1
  33. package/mcp-server/dist/index.js +128 -143
  34. package/mcp-server/dist/index.js.map +1 -1
  35. package/mcp-server/dist/preload.js +1 -1
  36. package/mcp-server/dist/preload.js.map +1 -1
  37. package/mcp-server/dist/services/codex-config-heal.d.ts +6 -2
  38. package/mcp-server/dist/services/codex-config-heal.d.ts.map +1 -1
  39. package/mcp-server/dist/services/codex-config-heal.js +81 -28
  40. package/mcp-server/dist/services/codex-config-heal.js.map +1 -1
  41. package/mcp-server/dist/services/memory-judge-backfill.d.ts +6 -0
  42. package/mcp-server/dist/services/memory-judge-backfill.d.ts.map +1 -1
  43. package/mcp-server/dist/services/memory-judge-backfill.js +7 -1
  44. package/mcp-server/dist/services/memory-judge-backfill.js.map +1 -1
  45. package/mcp-server/dist/services/neural-interface.d.ts +16 -10
  46. package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
  47. package/mcp-server/dist/services/neural-interface.js +67 -11
  48. package/mcp-server/dist/services/neural-interface.js.map +1 -1
  49. package/mcp-server/dist/services/server-instructions.d.ts +7 -2
  50. package/mcp-server/dist/services/server-instructions.d.ts.map +1 -1
  51. package/mcp-server/dist/services/server-instructions.js +20 -62
  52. package/mcp-server/dist/services/server-instructions.js.map +1 -1
  53. package/mcp-server/dist/services/tool-catalog.d.ts +120 -0
  54. package/mcp-server/dist/services/tool-catalog.d.ts.map +1 -0
  55. package/mcp-server/dist/services/tool-catalog.js +339 -0
  56. package/mcp-server/dist/services/tool-catalog.js.map +1 -0
  57. package/mcp-server/dist/services/tool-list-refresh-barrier.d.ts +12 -0
  58. package/mcp-server/dist/services/tool-list-refresh-barrier.d.ts.map +1 -0
  59. package/mcp-server/dist/services/tool-list-refresh-barrier.js +40 -0
  60. package/mcp-server/dist/services/tool-list-refresh-barrier.js.map +1 -0
  61. package/mcp-server/dist/services/tool-list.d.ts +108 -0
  62. package/mcp-server/dist/services/tool-list.d.ts.map +1 -0
  63. package/mcp-server/dist/services/tool-list.js +334 -0
  64. package/mcp-server/dist/services/tool-list.js.map +1 -0
  65. package/mcp-server/dist/services/tool-runtime.d.ts +161 -0
  66. package/mcp-server/dist/services/tool-runtime.d.ts.map +1 -0
  67. package/mcp-server/dist/services/tool-runtime.js +400 -0
  68. package/mcp-server/dist/services/tool-runtime.js.map +1 -0
  69. package/mcp-server/dist/services/whiteboard-geometry.d.ts +26 -2
  70. package/mcp-server/dist/services/whiteboard-geometry.d.ts.map +1 -1
  71. package/mcp-server/dist/services/whiteboard-geometry.js +91 -8
  72. package/mcp-server/dist/services/whiteboard-geometry.js.map +1 -1
  73. package/mcp-server/dist/tools/agents.d.ts +10 -10
  74. package/mcp-server/dist/tools/agents.d.ts.map +1 -1
  75. package/mcp-server/dist/tools/agents.js +22 -13
  76. package/mcp-server/dist/tools/agents.js.map +1 -1
  77. package/mcp-server/dist/tools/browser-batch.d.ts +3 -3
  78. package/mcp-server/dist/tools/image-tools.d.ts +1 -1
  79. package/mcp-server/dist/tools/image-tools.js +1 -1
  80. package/mcp-server/dist/tools/skill-tools.d.ts +505 -0
  81. package/mcp-server/dist/tools/skill-tools.d.ts.map +1 -0
  82. package/mcp-server/dist/tools/skill-tools.js +639 -0
  83. package/mcp-server/dist/tools/skill-tools.js.map +1 -0
  84. package/mcp-server/dist/tools/skill.d.ts +7 -0
  85. package/mcp-server/dist/tools/skill.d.ts.map +1 -0
  86. package/mcp-server/dist/tools/skill.js +11 -0
  87. package/mcp-server/dist/tools/skill.js.map +1 -0
  88. package/mcp-server/dist/tools/tool-groups.d.ts +68 -0
  89. package/mcp-server/dist/tools/tool-groups.d.ts.map +1 -0
  90. package/mcp-server/dist/tools/tool-groups.js +147 -0
  91. package/mcp-server/dist/tools/tool-groups.js.map +1 -0
  92. package/mcp-server/dist/tools/whiteboard-format.d.ts.map +1 -1
  93. package/mcp-server/dist/tools/whiteboard-format.js +7 -4
  94. package/mcp-server/dist/tools/whiteboard-format.js.map +1 -1
  95. package/mcp-server/dist/tools/whiteboard-tools.d.ts +64 -13
  96. package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +1 -1
  97. package/mcp-server/dist/tools/whiteboard-tools.js +30 -5
  98. package/mcp-server/dist/tools/whiteboard-tools.js.map +1 -1
  99. package/mcp-server/package-lock.json +2 -2
  100. package/mcp-server/package.json +1 -1
  101. package/mcp-server/src/http.ts +75 -12
  102. package/mcp-server/src/index.ts +147 -154
  103. package/mcp-server/src/preload.ts +12 -12
  104. package/mcp-server/src/services/codex-config-heal.ts +80 -29
  105. package/mcp-server/src/services/memory-judge-backfill.ts +7 -1
  106. package/mcp-server/src/services/neural-interface.ts +79 -20
  107. package/mcp-server/src/services/server-instructions.ts +27 -63
  108. package/mcp-server/src/services/tool-catalog.ts +403 -0
  109. package/mcp-server/src/services/tool-list-refresh-barrier.ts +33 -0
  110. package/mcp-server/src/services/tool-list.ts +410 -0
  111. package/mcp-server/src/services/tool-runtime.ts +457 -0
  112. package/mcp-server/src/services/whiteboard-geometry.ts +94 -9
  113. package/mcp-server/src/tools/agents.ts +22 -14
  114. package/mcp-server/src/tools/image-tools.ts +1 -1
  115. package/mcp-server/src/tools/skill-tools.ts +589 -0
  116. package/mcp-server/src/tools/skill.ts +13 -0
  117. package/mcp-server/src/tools/tool-groups.ts +164 -0
  118. package/mcp-server/src/tools/whiteboard-format.ts +9 -3
  119. package/mcp-server/src/tools/whiteboard-tools.ts +39 -5
  120. package/neural-interface/i18n/en.json +3680 -206
  121. package/neural-interface/i18n/pt-BR.json +3628 -157
  122. package/neural-interface/lib/account-usage.js +5 -3
  123. package/neural-interface/lib/app-controls-api.js +161 -0
  124. package/neural-interface/lib/assistant-api.js +148 -35
  125. package/neural-interface/lib/assistant-brains/claude.js +4 -3
  126. package/neural-interface/lib/assistant-brains/codex-browser-policy-hook.mjs +12 -2
  127. package/neural-interface/lib/assistant-brains/codex-route-gate-hook.mjs +32 -9
  128. package/neural-interface/lib/assistant-brains/codex.js +9 -5
  129. package/neural-interface/lib/assistant-brains/opencode.js +122 -44
  130. package/neural-interface/lib/assistant-brains/opencode2-browser-policy/index.js +59 -0
  131. package/neural-interface/lib/assistant-brains/opencode2-route-gate/index.js +97 -0
  132. package/neural-interface/lib/assistant-catalog.js +23 -9
  133. package/neural-interface/lib/assistant-dispatch.js +874 -156
  134. package/neural-interface/lib/assistant-envelope.js +22 -2
  135. package/neural-interface/lib/assistant-persona.js +80 -11
  136. package/neural-interface/lib/assistant-plan-permissions.js +10 -9
  137. package/neural-interface/lib/assistant-route-gate-codex.js +3 -0
  138. package/neural-interface/lib/assistant-route-gate.js +6 -4
  139. package/neural-interface/lib/assistant-router.js +13 -8
  140. package/neural-interface/lib/assistant-runtime.js +183 -26
  141. package/neural-interface/lib/assistant-task-prompt.js +78 -14
  142. package/neural-interface/lib/assistant-tools.js +51 -0
  143. package/neural-interface/lib/backup-service.js +620 -3
  144. package/neural-interface/lib/backup-zip-reader.js +10 -5
  145. package/neural-interface/lib/backup-zip-writer.js +257 -0
  146. package/neural-interface/lib/browser-execution.js +10 -2
  147. package/neural-interface/lib/browser-guard-cdp.js +83 -0
  148. package/neural-interface/lib/browser-network-guard.js +284 -0
  149. package/neural-interface/lib/browser-policy-roots.js +64 -0
  150. package/neural-interface/lib/browser-tool-policy.js +186 -31
  151. package/neural-interface/lib/claude-agent-bridge.js +4 -2
  152. package/neural-interface/lib/claude-hooks-status.js +103 -0
  153. package/neural-interface/lib/claude-model-catalog.js +64 -14
  154. package/neural-interface/lib/claude-temporary.js +5 -11
  155. package/neural-interface/lib/cli-install.js +18 -138
  156. package/neural-interface/lib/cli-resolver.js +4 -1
  157. package/neural-interface/lib/cli-update-planner.js +32 -31
  158. package/neural-interface/lib/cloudflared/tunnel.js +42 -2
  159. package/neural-interface/lib/codex-mcp-approvals.js +11 -0
  160. package/neural-interface/lib/codex-settings-schema.js +109 -47
  161. package/neural-interface/lib/codex-worker-app-server.js +172 -0
  162. package/neural-interface/lib/confined-fs.js +30 -3
  163. package/neural-interface/lib/crash-notice-api.js +98 -0
  164. package/neural-interface/lib/editor-completion-opencode.js +164 -67
  165. package/neural-interface/lib/exec-loop-command.js +4 -1
  166. package/neural-interface/lib/http-guards.js +8 -2
  167. package/neural-interface/lib/install-details.js +4 -1
  168. package/neural-interface/lib/launch-cache.js +293 -0
  169. package/neural-interface/lib/login-start.js +524 -0
  170. package/neural-interface/lib/mcp-agent-servers.js +67 -0
  171. package/neural-interface/lib/mcp-client-config.js +0 -29
  172. package/neural-interface/lib/mcp-external-servers.js +323 -0
  173. package/neural-interface/lib/{mcp-profile-refresh-coordinator.js → mcp-tools-refresh-coordinator.js} +4 -4
  174. package/neural-interface/lib/morelogin.js +30 -0
  175. package/neural-interface/lib/native-loop-providers.js +565 -50
  176. package/neural-interface/lib/native-loop-runtime.js +287 -41
  177. package/neural-interface/lib/opencode-config.js +557 -0
  178. package/neural-interface/lib/opencode-db-schema.js +58 -0
  179. package/neural-interface/lib/opencode-history.js +49 -204
  180. package/neural-interface/lib/opencode-mcp-ready.js +108 -0
  181. package/neural-interface/lib/opencode-native-boundary.js +44 -0
  182. package/neural-interface/lib/opencode-protocol.js +310 -0
  183. package/neural-interface/lib/opencode-provider-view.js +81 -0
  184. package/neural-interface/lib/opencode-runtime-config.js +32 -15
  185. package/neural-interface/lib/opencode-serve-records.js +624 -0
  186. package/neural-interface/lib/opencode-v2-client.js +53 -131
  187. package/neural-interface/lib/opencode-v2-ws-requests.js +35 -195
  188. package/neural-interface/lib/opencode-worker-activity.js +229 -0
  189. package/neural-interface/lib/opencode-worker-data.js +27 -0
  190. package/neural-interface/lib/opencode2-client.js +796 -0
  191. package/neural-interface/lib/opencode2-proxy.js +76 -0
  192. package/neural-interface/lib/opencode2-translate.js +1057 -0
  193. package/neural-interface/lib/owner-authority.js +249 -0
  194. package/neural-interface/lib/page-session.js +275 -0
  195. package/neural-interface/lib/peer-identity.js +763 -0
  196. package/neural-interface/lib/process-identity.js +361 -0
  197. package/neural-interface/lib/request-gate.js +17 -2
  198. package/neural-interface/lib/rulesets/api.js +1 -1
  199. package/neural-interface/lib/rulesets/fs-safe.js +1 -1
  200. package/neural-interface/lib/rulesets/installer.js +92 -27
  201. package/neural-interface/lib/rulesets/json-edit.js +1 -1
  202. package/neural-interface/lib/session-cache-builder.js +18 -10
  203. package/neural-interface/lib/session-title-generator.js +58 -18
  204. package/neural-interface/lib/skills/api-v2.js +495 -0
  205. package/neural-interface/lib/skills/bundle.js +418 -0
  206. package/neural-interface/lib/skills/catalog.js +294 -0
  207. package/neural-interface/lib/skills/creation-api.js +191 -0
  208. package/neural-interface/lib/skills/creation-brief.js +247 -0
  209. package/neural-interface/lib/skills/creation-sources.js +267 -0
  210. package/neural-interface/lib/skills/creation.js +843 -0
  211. package/neural-interface/lib/skills/deploy.js +564 -0
  212. package/neural-interface/lib/skills/digest.js +119 -0
  213. package/neural-interface/lib/skills/discover.js +111 -0
  214. package/neural-interface/lib/skills/draft-confinement.js +214 -0
  215. package/neural-interface/lib/skills/eval-confinement.js +397 -0
  216. package/neural-interface/lib/skills/eval-sandbox.js +280 -0
  217. package/neural-interface/lib/skills/eval-trace.js +119 -0
  218. package/neural-interface/lib/skills/evals-api.js +212 -0
  219. package/neural-interface/lib/skills/evals.js +1573 -0
  220. package/neural-interface/lib/skills/export.js +200 -0
  221. package/neural-interface/lib/skills/frontmatter.js +64 -0
  222. package/neural-interface/lib/skills/health.js +75 -0
  223. package/neural-interface/lib/skills/json-edit.js +165 -0
  224. package/neural-interface/lib/skills/known-bridge-digests.json +387 -0
  225. package/neural-interface/lib/skills/known-bridges.js +96 -0
  226. package/neural-interface/lib/skills/library.js +823 -0
  227. package/neural-interface/lib/skills/local-store.js +21 -0
  228. package/neural-interface/lib/skills/migration.js +433 -0
  229. package/neural-interface/lib/skills/operations.js +45 -0
  230. package/neural-interface/lib/skills/ownership.js +427 -0
  231. package/neural-interface/lib/skills/packages.js +88 -0
  232. package/neural-interface/lib/skills/reviews.js +212 -0
  233. package/neural-interface/lib/skills/revision.js +80 -0
  234. package/neural-interface/lib/skills/roots.js +262 -0
  235. package/neural-interface/lib/skills/runtime-checks.js +355 -0
  236. package/neural-interface/lib/skills/scan-assets.js +252 -0
  237. package/neural-interface/lib/skills/scan-context.js +26 -0
  238. package/neural-interface/lib/skills/scan-shell.js +324 -0
  239. package/neural-interface/lib/skills/scan.js +364 -0
  240. package/neural-interface/lib/skills/scanners.js +54 -0
  241. package/neural-interface/lib/skills/service.js +522 -0
  242. package/neural-interface/lib/skills/telemetry.js +113 -0
  243. package/neural-interface/lib/sqlite-integrity-worker.js +22 -0
  244. package/neural-interface/lib/style-guide/api.js +4 -3
  245. package/neural-interface/lib/tool-lists.js +124 -0
  246. package/neural-interface/lib/untrusted-file-headers.js +27 -0
  247. package/neural-interface/lib/whatsapp/bridge.js +6 -3
  248. package/neural-interface/lib/worker-confinement.js +1192 -0
  249. package/neural-interface/lib/worker-guard-setting.js +56 -0
  250. package/neural-interface/lib/worker-mcp-channel.js +175 -0
  251. package/neural-interface/lib/worker-relay-ports.js +227 -0
  252. package/neural-interface/lib/worker-resume.js +229 -0
  253. package/neural-interface/lib/worker-sandbox.js +299 -0
  254. package/neural-interface/package-lock.json +1354 -50
  255. package/neural-interface/package.json +6 -2
  256. package/neural-interface/public/index.html +5 -3
  257. package/neural-interface/public/index2d.html +19 -11
  258. package/neural-interface/public/onboarding.html +2 -2
  259. package/neural-interface/public/shared/account-menu.js +8 -5
  260. package/neural-interface/public/shared/agent-runtime-options.js +76 -16
  261. package/neural-interface/public/shared/api.js +1527 -1336
  262. package/neural-interface/public/shared/app-frame.js +192 -0
  263. package/neural-interface/public/shared/assistant/asst-agents-dock.js +205 -19
  264. package/neural-interface/public/shared/assistant/asst-api.js +11 -3
  265. package/neural-interface/public/shared/assistant/asst-ask-styles.js +270 -0
  266. package/neural-interface/public/shared/assistant/asst-ask-tail.js +118 -0
  267. package/neural-interface/public/shared/assistant/asst-ask.js +397 -0
  268. package/neural-interface/public/shared/assistant/asst-brain-picker.js +241 -112
  269. package/neural-interface/public/shared/assistant/asst-composer.js +1 -1
  270. package/neural-interface/public/shared/assistant/asst-control.js +157 -26
  271. package/neural-interface/public/shared/assistant/asst-followups-card.js +383 -0
  272. package/neural-interface/public/shared/assistant/asst-followups.js +417 -0
  273. package/neural-interface/public/shared/assistant/asst-hosts.js +49 -2
  274. package/neural-interface/public/shared/assistant/asst-limit-dock.js +40 -0
  275. package/neural-interface/public/shared/assistant/asst-limit-wait.js +294 -0
  276. package/neural-interface/public/shared/assistant/asst-limit.js +168 -0
  277. package/neural-interface/public/shared/assistant/asst-mascot.js +49 -12
  278. package/neural-interface/public/shared/assistant/asst-menu.js +84 -12
  279. package/neural-interface/public/shared/assistant/asst-panel.js +303 -44
  280. package/neural-interface/public/shared/assistant/asst-rack-styles.js +93 -58
  281. package/neural-interface/public/shared/assistant/asst-redact.js +186 -0
  282. package/neural-interface/public/shared/assistant/asst-render.js +770 -100
  283. package/neural-interface/public/shared/assistant/asst-route.js +83 -12
  284. package/neural-interface/public/shared/assistant/asst-run-stage.js +231 -0
  285. package/neural-interface/public/shared/assistant/asst-sanitize.js +193 -3
  286. package/neural-interface/public/shared/assistant/asst-scene-styles.js +273 -0
  287. package/neural-interface/public/shared/assistant/asst-scenes.js +530 -0
  288. package/neural-interface/public/shared/assistant/asst-sidepanel-styles.js +3 -15
  289. package/neural-interface/public/shared/assistant/asst-sidepanel.js +67 -4
  290. package/neural-interface/public/shared/assistant/asst-slash.js +9 -7
  291. package/neural-interface/public/shared/assistant/asst-state.js +25 -15
  292. package/neural-interface/public/shared/assistant/asst-stop.js +127 -0
  293. package/neural-interface/public/shared/assistant/asst-styles.js +102 -21
  294. package/neural-interface/public/shared/assistant/asst-tool-kinds.js +165 -13
  295. package/neural-interface/public/shared/automation-context.js +5 -2
  296. package/neural-interface/public/shared/cc-dropdown.js +550 -0
  297. package/neural-interface/public/shared/cdx/cdx-context-menu.js +10 -9
  298. package/neural-interface/public/shared/cdx/cdx-copy.js +16 -0
  299. package/neural-interface/public/shared/cdx/cdx-output-model.js +22 -1
  300. package/neural-interface/public/shared/cdx/cdx-output.js +8 -7
  301. package/neural-interface/public/shared/cdx/cdx-panel.js +58 -150
  302. package/neural-interface/public/shared/cdx/cdx-protocol.js +28 -1
  303. package/neural-interface/public/shared/cdx/cdx-render.js +62 -32
  304. package/neural-interface/public/shared/cdx/cdx-requests.js +3 -3
  305. package/neural-interface/public/shared/cdx/cdx-skill-hints.js +54 -0
  306. package/neural-interface/public/shared/cdx/cdx-styles.js +15 -3
  307. package/neural-interface/public/shared/cdx/cdx-tabs.js +201 -74
  308. package/neural-interface/public/shared/cdx/cdx-ws.js +0 -1
  309. package/neural-interface/public/shared/cli-install-view.js +4 -8
  310. package/neural-interface/public/shared/cli-status.js +2 -2
  311. package/neural-interface/public/shared/constants.js +2 -2
  312. package/neural-interface/public/shared/context-menu-areas.js +34 -0
  313. package/neural-interface/public/shared/context-menu-logic.js +243 -0
  314. package/neural-interface/public/shared/context-menu-model.js +366 -0
  315. package/neural-interface/public/shared/context-menu.js +372 -0
  316. package/neural-interface/public/shared/cp/cp-context-menu.js +10 -9
  317. package/neural-interface/public/shared/cp/cp-markdown.js +4 -57
  318. package/neural-interface/public/shared/crash-notice-view.js +168 -0
  319. package/neural-interface/public/shared/data-cache.js +223 -0
  320. package/neural-interface/public/shared/desktop-bridge.js +11 -0
  321. package/neural-interface/public/shared/desktop-titlebar-view.js +78 -1
  322. package/neural-interface/public/shared/desktop-titlebar.js +214 -28
  323. package/neural-interface/public/shared/desktop-update-view.js +35 -5
  324. package/neural-interface/public/shared/editor/editor-panel-logic.js +2 -2
  325. package/neural-interface/public/shared/file-links.js +73 -8
  326. package/neural-interface/public/shared/html-shell.js +78 -86
  327. package/neural-interface/public/shared/i18n.js +2 -0
  328. package/neural-interface/public/shared/launch-prefetch.js +59 -0
  329. package/neural-interface/public/shared/ocp-v2/ocp-v2-approvals.js +7 -7
  330. package/neural-interface/public/shared/ocp-v2/ocp-v2-binding.js +4 -4
  331. package/neural-interface/public/shared/ocp-v2/ocp-v2-caps.js +3 -2
  332. package/neural-interface/public/shared/ocp-v2/ocp-v2-changes-logic.js +3 -101
  333. package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +9 -2
  334. package/neural-interface/public/shared/ocp-v2/ocp-v2-compact-button.js +1 -3
  335. package/neural-interface/public/shared/ocp-v2/ocp-v2-composer-logic.js +2 -6
  336. package/neural-interface/public/shared/ocp-v2/ocp-v2-context-menu.js +11 -11
  337. package/neural-interface/public/shared/ocp-v2/ocp-v2-context-model.js +0 -3
  338. package/neural-interface/public/shared/ocp-v2/ocp-v2-events.js +8 -4
  339. package/neural-interface/public/shared/ocp-v2/ocp-v2-manager.js +7 -7
  340. package/neural-interface/public/shared/ocp-v2/ocp-v2-modelpicker.js +54 -17
  341. package/neural-interface/public/shared/ocp-v2/ocp-v2-outcome-notifications.js +16 -0
  342. package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +140 -254
  343. package/neural-interface/public/shared/ocp-v2/ocp-v2-plan.js +1 -2
  344. package/neural-interface/public/shared/ocp-v2/ocp-v2-projectbar.js +97 -203
  345. package/neural-interface/public/shared/ocp-v2/ocp-v2-providers.js +11 -9
  346. package/neural-interface/public/shared/ocp-v2/ocp-v2-rehydrate.js +15 -4
  347. package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +7 -22
  348. package/neural-interface/public/shared/ocp-v2/ocp-v2-send-logic.js +401 -0
  349. package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +20 -13
  350. package/neural-interface/public/shared/ocp-v2/ocp-v2-session-actions.js +8 -61
  351. package/neural-interface/public/shared/ocp-v2/ocp-v2-sessions-logic.js +53 -82
  352. package/neural-interface/public/shared/ocp-v2/ocp-v2-slash-hints.js +16 -15
  353. package/neural-interface/public/shared/ocp-v2/ocp-v2-state.js +8 -21
  354. package/neural-interface/public/shared/ocp-v2/ocp-v2-status-logic.js +1 -99
  355. package/neural-interface/public/shared/ocp-v2/ocp-v2-status.js +5 -35
  356. package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +48 -40
  357. package/neural-interface/public/shared/ocp-v2/{ocp-v2-profile-inheritance.js → ocp-v2-tools-inheritance.js} +16 -16
  358. package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +205 -62
  359. package/neural-interface/public/shared/opencode-providers.js +39 -0
  360. package/neural-interface/public/shared/page-session.js +96 -0
  361. package/neural-interface/public/shared/registry.js +5 -3
  362. package/neural-interface/public/shared/retired-2d.js +3 -0
  363. package/neural-interface/public/shared/schedules-view.js +452 -0
  364. package/neural-interface/public/shared/settings/settings-app-pane.js +335 -0
  365. package/neural-interface/public/shared/settings/settings-app.js +243 -0
  366. package/neural-interface/public/shared/settings/settings-claude-hooks.js +135 -0
  367. package/neural-interface/public/shared/settings/settings-data.js +90 -0
  368. package/neural-interface/public/shared/settings/settings-ia.js +23 -6
  369. package/neural-interface/public/shared/settings/settings-opencode.js +89 -0
  370. package/neural-interface/public/shared/settings/settings-skill-folders-pane.js +265 -0
  371. package/neural-interface/public/shared/settings/settings-skill-folders.js +130 -0
  372. package/neural-interface/public/shared/settings/settings-worker-guard.js +72 -0
  373. package/neural-interface/public/shared/sidepanel-session-status.js +49 -0
  374. package/neural-interface/public/shared/skills/ss-args.js +96 -0
  375. package/neural-interface/public/shared/skills/ss-creation.js +219 -0
  376. package/neural-interface/public/shared/skills/ss-dialog.js +130 -0
  377. package/neural-interface/public/shared/skills/ss-doc.js +173 -0
  378. package/neural-interface/public/shared/skills/ss-eval-adapters.js +269 -0
  379. package/neural-interface/public/shared/skills/ss-eval-grade.js +359 -0
  380. package/neural-interface/public/shared/skills/ss-eval-optimise.js +153 -0
  381. package/neural-interface/public/shared/skills/ss-eval-plan.js +315 -0
  382. package/neural-interface/public/shared/skills/ss-evals.js +417 -0
  383. package/neural-interface/public/shared/skills/ss-form.js +159 -0
  384. package/neural-interface/public/shared/skills/ss-frontmatter.js +376 -0
  385. package/neural-interface/public/shared/skills/ss-ids.js +32 -0
  386. package/neural-interface/public/shared/skills/ss-lint.js +141 -0
  387. package/neural-interface/public/shared/skills/ss-presets.js +117 -0
  388. package/neural-interface/public/shared/skills/ss-profiles.js +475 -0
  389. package/neural-interface/public/shared/skills/ss-resources.js +165 -0
  390. package/neural-interface/public/shared/skills/ss-review-view.js +190 -0
  391. package/neural-interface/public/shared/skills/ss-tabs.js +79 -0
  392. package/neural-interface/public/shared/skills/ss-unicode.js +135 -0
  393. package/neural-interface/public/shared/skills/studio/sx-actions.js +222 -0
  394. package/neural-interface/public/shared/skills/studio/sx-cm.js +101 -0
  395. package/neural-interface/public/shared/skills/studio/sx-create-ai-view.js +749 -0
  396. package/neural-interface/public/shared/skills/studio/sx-create-ai.js +236 -0
  397. package/neural-interface/public/shared/skills/studio/sx-create-view.js +254 -0
  398. package/neural-interface/public/shared/skills/studio/sx-create.js +126 -0
  399. package/neural-interface/public/shared/skills/studio/sx-diff-view.js +43 -0
  400. package/neural-interface/public/shared/skills/studio/sx-diff.js +133 -0
  401. package/neural-interface/public/shared/skills/studio/sx-docs.js +480 -0
  402. package/neural-interface/public/shared/skills/studio/sx-dom.js +229 -0
  403. package/neural-interface/public/shared/skills/studio/sx-edit-view.js +848 -0
  404. package/neural-interface/public/shared/skills/studio/sx-editor-model.js +193 -0
  405. package/neural-interface/public/shared/skills/studio/sx-errors.js +22 -0
  406. package/neural-interface/public/shared/skills/studio/sx-geometry.js +82 -0
  407. package/neural-interface/public/shared/skills/studio/sx-import.js +262 -0
  408. package/neural-interface/public/shared/skills/studio/sx-inspector.js +308 -0
  409. package/neural-interface/public/shared/skills/studio/sx-install-flow.js +279 -0
  410. package/neural-interface/public/shared/skills/studio/sx-install.js +296 -0
  411. package/neural-interface/public/shared/skills/studio/sx-library-view.js +639 -0
  412. package/neural-interface/public/shared/skills/studio/sx-library.js +475 -0
  413. package/neural-interface/public/shared/skills/studio/sx-main.js +681 -0
  414. package/neural-interface/public/shared/skills/studio/sx-operations-view.js +98 -0
  415. package/neural-interface/public/shared/skills/studio/sx-operations.js +11 -0
  416. package/neural-interface/public/shared/skills/studio/sx-plan.js +158 -0
  417. package/neural-interface/public/shared/skills/studio/sx-publish-view.js +621 -0
  418. package/neural-interface/public/shared/skills/studio/sx-review-view.js +369 -0
  419. package/neural-interface/public/shared/skills/studio/sx-review.js +148 -0
  420. package/neural-interface/public/shared/skills/studio/sx-scan.js +35 -0
  421. package/neural-interface/public/shared/skills/studio/sx-snippets.js +96 -0
  422. package/neural-interface/public/shared/skills/studio/sx-subject.js +248 -0
  423. package/neural-interface/public/shared/skills/studio/sx-test-view.js +994 -0
  424. package/neural-interface/public/shared/skills/studio/sx-test.js +328 -0
  425. package/neural-interface/public/shared/skills/studio/sx-versions-view.js +241 -0
  426. package/neural-interface/public/shared/skills/studio/sx-workspace-view.js +425 -0
  427. package/neural-interface/public/shared/styleguide/sg-panel.js +4 -2
  428. package/neural-interface/public/shared/styles.css +2065 -2150
  429. package/neural-interface/public/shared/synabun-mascot.js +1115 -9
  430. package/neural-interface/public/shared/tool-list-picker.js +55 -0
  431. package/neural-interface/public/shared/tool-list-storage.js +24 -0
  432. package/neural-interface/public/shared/tool-list-view.js +112 -0
  433. package/neural-interface/public/shared/tour/tour-actor.js +268 -0
  434. package/neural-interface/public/shared/tour/tour-beats.js +336 -0
  435. package/neural-interface/public/shared/tour/tour-engine.js +884 -0
  436. package/neural-interface/public/shared/tour/tour-ink.js +390 -0
  437. package/neural-interface/public/shared/tour/tour-stage.js +440 -0
  438. package/neural-interface/public/shared/tour/tour-state.js +40 -0
  439. package/neural-interface/public/shared/tour/tour-tips.js +99 -0
  440. package/neural-interface/public/shared/tour/tour.css +144 -0
  441. package/neural-interface/public/shared/ui-assistant.js +27 -5
  442. package/neural-interface/public/shared/ui-automation-studio.js +155 -152
  443. package/neural-interface/public/shared/ui-bookmarks.js +2 -1
  444. package/neural-interface/public/shared/ui-claude-panel.js +153 -13
  445. package/neural-interface/public/shared/ui-codex-panel.js +1 -0
  446. package/neural-interface/public/shared/ui-command-runner.js +6 -3
  447. package/neural-interface/public/shared/ui-context-menu.js +295 -0
  448. package/neural-interface/public/shared/ui-cost-widget.js +57 -59
  449. package/neural-interface/public/shared/ui-crash-notice.js +187 -0
  450. package/neural-interface/public/shared/ui-detail.js +21 -9
  451. package/neural-interface/public/shared/ui-file-links.js +1 -0
  452. package/neural-interface/public/shared/ui-image-gallery.js +56 -52
  453. package/neural-interface/public/shared/ui-invite.js +18 -2
  454. package/neural-interface/public/shared/ui-keybinds.js +26 -1
  455. package/neural-interface/public/shared/ui-link.js +9 -9
  456. package/neural-interface/public/shared/ui-menubar.js +229 -40
  457. package/neural-interface/public/shared/ui-native-loop-router-state.js +5 -0
  458. package/neural-interface/public/shared/ui-native-loop-router.js +9 -1
  459. package/neural-interface/public/shared/ui-navbar.js +4 -24
  460. package/neural-interface/public/shared/ui-opencode-panel-v2.js +1 -0
  461. package/neural-interface/public/shared/ui-panels.js +96 -65
  462. package/neural-interface/public/shared/ui-schedules-studio.js +2267 -953
  463. package/neural-interface/public/shared/ui-sessions.js +20 -7
  464. package/neural-interface/public/shared/ui-settings.js +679 -496
  465. package/neural-interface/public/shared/ui-sidebar.js +4 -4
  466. package/neural-interface/public/shared/ui-sidepanel-session-entry.js +13 -0
  467. package/neural-interface/public/shared/ui-sidepanel-sessions.js +56 -5
  468. package/neural-interface/public/shared/ui-sidepanel-state.js +23 -12
  469. package/neural-interface/public/shared/ui-sidepanel-tray.js +84 -8
  470. package/neural-interface/public/shared/ui-sidepanel-windows.js +16 -11
  471. package/neural-interface/public/shared/ui-skills.js +42 -2781
  472. package/neural-interface/public/shared/ui-styleguide.js +5 -2
  473. package/neural-interface/public/shared/ui-sync.js +22 -5
  474. package/neural-interface/public/shared/ui-terminal.js +159 -199
  475. package/neural-interface/public/shared/ui-tool-updates.js +3 -1
  476. package/neural-interface/public/shared/ui-tooltip.js +10 -5
  477. package/neural-interface/public/shared/ui-trash.js +14 -5
  478. package/neural-interface/public/shared/ui-tutorial-layout.js +3 -117
  479. package/neural-interface/public/shared/ui-tutorial-preview.js +103 -0
  480. package/neural-interface/public/shared/ui-tutorial-steps.js +3 -61
  481. package/neural-interface/public/shared/ui-tutorial.css +47 -100
  482. package/neural-interface/public/shared/ui-tutorial.js +285 -499
  483. package/neural-interface/public/shared/ui-update.js +121 -16
  484. package/neural-interface/public/shared/ui-whiteboard.js +313 -59
  485. package/neural-interface/public/shared/ui-worker-end.js +4 -0
  486. package/neural-interface/public/shared/ui-workspaces.js +3 -2
  487. package/neural-interface/public/shared/view-variant.js +66 -0
  488. package/neural-interface/public/shared/whatsapp/wa-view.js +1 -1
  489. package/neural-interface/public/shared/whiteboard-list.js +172 -0
  490. package/neural-interface/public/shared/worker-end.js +10 -3
  491. package/neural-interface/public/shared/worker-restart.js +12 -0
  492. package/neural-interface/public/sidepanel-session.html +1 -1
  493. package/neural-interface/public/variant/2d/background.js +2 -1
  494. package/neural-interface/public/variant/2d/context-menu.js +8 -2
  495. package/neural-interface/public/variant/2d/graph.js +42 -20
  496. package/neural-interface/public/variant/2d/hulls.js +14 -9
  497. package/neural-interface/public/variant/2d/lasso.js +11 -7
  498. package/neural-interface/public/variant/2d/main.js +36 -2
  499. package/neural-interface/public/variant/2d/minimap.js +11 -13
  500. package/neural-interface/public/variant/3d/main.js +72 -6
  501. package/neural-interface/public/variant/3d/map-controls.js +24 -9
  502. package/neural-interface/public/vendor/caveat/OFL.txt +93 -0
  503. package/neural-interface/public/vendor/caveat/caveat-latin-400-normal.woff2 +0 -0
  504. package/neural-interface/public/vendor/caveat/caveat-latin-700-normal.woff2 +0 -0
  505. package/neural-interface/public/vendor/caveat/caveat.css +17 -0
  506. package/neural-interface/public/vendor/caveat/manifest.json +12 -0
  507. package/neural-interface/public/vendor/highlight/LICENSE +29 -0
  508. package/neural-interface/public/vendor/highlight/github-dark-dimmed-11.12.0.min.css +9 -0
  509. package/neural-interface/public/vendor/highlight/highlight-11.12.0.min.js +1262 -0
  510. package/neural-interface/public/vendor/highlight/manifest.json +5 -0
  511. package/neural-interface/public/vendor/html2canvas/LICENSE +22 -0
  512. package/neural-interface/public/vendor/html2canvas/html2canvas-1.4.1.min.js +20 -0
  513. package/neural-interface/public/vendor/html2canvas/manifest.json +4 -0
  514. package/neural-interface/public/vendor/marked/LICENSE.md +44 -0
  515. package/neural-interface/public/vendor/marked/manifest.json +4 -0
  516. package/neural-interface/public/vendor/marked/marked-14.1.4.esm.js +2502 -0
  517. package/neural-interface/public/vendor/mermaid/LICENSE +21 -0
  518. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/abnfDiagram-PAR5IXJI.mjs +1 -0
  519. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architecture-7GRP2DOG-M7G3SWCO.mjs +1 -0
  520. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architectureDiagram-2PNWDENW.mjs +36 -0
  521. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/blockDiagram-PUWGUBOA.mjs +129 -0
  522. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/c4Diagram-3NLNHZP5.mjs +38 -0
  523. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-2NMSUPJH.mjs +1 -0
  524. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-32MCUW2P.mjs +206 -0
  525. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3NPNU5GP.mjs +1 -0
  526. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3SMGFRGC.mjs +1 -0
  527. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4CAJECRU.mjs +14 -0
  528. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4OADUZ5Q.mjs +10 -0
  529. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IMINLNL.mjs +1 -0
  530. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IQCK5RY.mjs +3 -0
  531. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5MVFYWFU.mjs +1 -0
  532. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AQ6EADP3.mjs +1 -0
  533. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AZZRMDJM.mjs +15 -0
  534. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-CLS4B6BI.mjs +168 -0
  535. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-DZP67EKU.mjs +70 -0
  536. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-EICP7K5X.mjs +1 -0
  537. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-GDY2UAB4.mjs +1 -0
  538. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-H7VHZCWX.mjs +1 -0
  539. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-IJBDOHL6.mjs +1 -0
  540. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JFFVMJIA.mjs +1 -0
  541. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JQRUD6KW.mjs +1 -0
  542. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JZGDI5JK.mjs +1 -0
  543. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-KD6SPIPN.mjs +2 -0
  544. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NF366YI6.mjs +231 -0
  545. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NUDPKBEF.mjs +32 -0
  546. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-OJINMHTS.mjs +1 -0
  547. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Q6NGPIAH.mjs +2 -0
  548. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-QJSWEUOL.mjs +132 -0
  549. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-R7JDMUKV.mjs +1 -0
  550. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RCXAM2GK.mjs +1 -0
  551. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RT4MAWR3.mjs +1 -0
  552. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SFMINX4W.mjs +1 -0
  553. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SLDQ463B.mjs +88 -0
  554. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-STOV2HOB.mjs +1 -0
  555. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-T5OCTHI4.mjs +1 -0
  556. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-TCEHX7R3.mjs +1 -0
  557. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VQC2EELJ.mjs +1 -0
  558. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VRZKL3EH.mjs +1 -0
  559. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VTHDQ7BV.mjs +1 -0
  560. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VY2OSTJR.mjs +2 -0
  561. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-WUBWJARI.mjs +1 -0
  562. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YBMQ5JGJ.mjs +2 -0
  563. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YDMLL4PJ.mjs +1 -0
  564. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Z6V44ARX.mjs +62 -0
  565. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZJJ7VQJP.mjs +339 -0
  566. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZNLK7HRR.mjs +1 -0
  567. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZQN7UHIL.mjs +1 -0
  568. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZS6VBONO.mjs +174 -0
  569. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZUNWM646.mjs +1 -0
  570. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-FGAMPOII.mjs +1 -0
  571. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-v2-AI5RJEK4.mjs +1 -0
  572. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cose-bilkent-Q72C2OJ3.mjs +1 -0
  573. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefin-OW5HDTMX-6OCTWOGG.mjs +1 -0
  574. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefinDiagram-2OOWUY4M.mjs +62 -0
  575. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/dagre-MPVFI544.mjs +4 -0
  576. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-AE4NWXFW.mjs +24 -0
  577. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-BUJID5UG.mjs +41 -0
  578. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-C44CZ5NI.mjs +24 -0
  579. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-EYOLEXXS.mjs +30 -0
  580. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-P7B6PWOJ.mjs +3 -0
  581. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ebnfDiagram-FTPZ3PV6.mjs +1 -0
  582. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/erDiagram-H3ERR26V.mjs +99 -0
  583. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/eventmodeling-NTZA5JFV-WKSWQHFS.mjs +1 -0
  584. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/flowDiagram-YHGXBVSY.mjs +1 -0
  585. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ganttDiagram-RWFTB7ED.mjs +292 -0
  586. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraph-4MIJSDKK-JH2HKYUO.mjs +1 -0
  587. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraphDiagram-MAR6GKOP.mjs +106 -0
  588. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/info-A6RAGUB7-3TX3OFWW.mjs +1 -0
  589. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/infoDiagram-LV547AFH.mjs +2 -0
  590. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ishikawaDiagram-PUJQGNDS.mjs +70 -0
  591. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/journeyDiagram-EW5QJT4W.mjs +139 -0
  592. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/kanban-definition-JSQERAZB.mjs +89 -0
  593. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/katex-CZ4GXH2S.mjs +257 -0
  594. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/mindmap-definition-VBJCLQLM.mjs +96 -0
  595. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/packet-AYTQ26CC-MKII6P3Y.mjs +1 -0
  596. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pegDiagram-7WILOQTJ.mjs +1 -0
  597. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pie-WAS4IAKB-6B4OPMJ5.mjs +1 -0
  598. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pieDiagram-EFA7CBSB.mjs +39 -0
  599. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/quadrantDiagram-WARVYA7P.mjs +7 -0
  600. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/radar-RG4KPBEZ-UPTR3XUL.mjs +1 -0
  601. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-74A4TZTK-MEFUPFMS.mjs +1 -0
  602. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-abnf-HS5TGJTU-R5YG2S5D.mjs +1 -0
  603. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-ebnf-LZEXJU2U-G5QEX2L6.mjs +1 -0
  604. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-peg-WCYAUIDC-H5I2ZRY2.mjs +1 -0
  605. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroadDiagram-5NIQVNLQ.mjs +1 -0
  606. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/requirementDiagram-SXREGOKZ.mjs +84 -0
  607. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sankeyDiagram-VV74M2VP.mjs +40 -0
  608. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sequenceDiagram-52ZFIFDL.mjs +162 -0
  609. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sizeCapture-FGA5AGYP.mjs +1 -0
  610. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-3QAKPIVI.mjs +1 -0
  611. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-v2-HN2P4RDZ.mjs +1 -0
  612. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanes-QLVP42QD.mjs +1 -0
  613. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanesDiagram-JKPDBFCN.mjs +8 -0
  614. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/timeline-definition-GS45XAXW.mjs +120 -0
  615. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treeView-Q6P3EWNA-ZRJGANNQ.mjs +1 -0
  616. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treemap-WGGIJYW6-K64VN5AS.mjs +1 -0
  617. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/vennDiagram-QIQU2ZRJ.mjs +34 -0
  618. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardley-WFR3VGLG-D67OWCCH.mjs +1 -0
  619. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardleyDiagram-U6YNM66N.mjs +78 -0
  620. package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/xychartDiagram-XJAZEDNM.mjs +7 -0
  621. package/neural-interface/public/vendor/mermaid/manifest.json +4 -0
  622. package/neural-interface/public/vendor/mermaid/mermaid-11.17.2.esm.min.mjs +14 -0
  623. package/neural-interface/public/vendor/yaml/LICENSE +13 -0
  624. package/neural-interface/public/vendor/yaml/manifest.json +4 -0
  625. package/neural-interface/public/vendor/yaml/yaml-2.9.1.min.js +137 -0
  626. package/neural-interface/scripts/build-vendor.mjs +116 -3
  627. package/neural-interface/server.js +4834 -2541
  628. package/neural-interface/templates/rulesets/core.md +1 -1
  629. package/neural-interface/templates/rulesets/legacy-hashes.json +18 -0
  630. package/neural-interface/templates/rulesets/manifest.json +8 -8
  631. package/npm-shrinkwrap.json +18 -12
  632. package/package.json +16 -3
  633. package/postinstall.js +9 -4
  634. package/preuninstall.js +1 -1
  635. package/setup.js +97 -322
  636. package/skills/skill-forge/SKILL.md +177 -0
  637. package/skills/skill-forge/evals/evals.json +54 -0
  638. package/skills/skill-forge/references/package.md +105 -0
  639. package/skills/skill-forge/references/review-and-recovery.md +63 -0
  640. package/skills/skill-forge/references/runtime-profiles.md +20 -0
  641. package/skills/skill-forge/references/sources-and-capabilities.md +51 -0
  642. package/skills/synabun/SKILL.md +10 -7
  643. package/skills/synabun/modules/audit.md +1 -5
  644. package/skills/synabun/modules/changelog.md +1 -5
  645. package/skills/synabun/modules/idea.md +1 -1
  646. package/skills/synabun/modules/memorize.md +6 -9
  647. package/skills/synabun/modules/schedule.md +5 -5
  648. package/mcp-server/dist/services/profiles.d.ts +0 -120
  649. package/mcp-server/dist/services/profiles.d.ts.map +0 -1
  650. package/mcp-server/dist/services/profiles.js +0 -387
  651. package/mcp-server/dist/services/profiles.js.map +0 -1
  652. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +0 -97
  653. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +0 -1
  654. package/mcp-server/dist/tools/leonardo-browser-tools.js +0 -228
  655. package/mcp-server/dist/tools/leonardo-browser-tools.js.map +0 -1
  656. package/mcp-server/dist/tools/leonardo.d.ts +0 -13
  657. package/mcp-server/dist/tools/leonardo.d.ts.map +0 -1
  658. package/mcp-server/dist/tools/leonardo.js +0 -21
  659. package/mcp-server/dist/tools/leonardo.js.map +0 -1
  660. package/mcp-server/dist/tools/profile.d.ts +0 -17
  661. package/mcp-server/dist/tools/profile.d.ts.map +0 -1
  662. package/mcp-server/dist/tools/profile.js +0 -114
  663. package/mcp-server/dist/tools/profile.js.map +0 -1
  664. package/mcp-server/src/services/profiles.ts +0 -428
  665. package/mcp-server/src/tools/leonardo-browser-tools.ts +0 -291
  666. package/mcp-server/src/tools/leonardo.ts +0 -30
  667. package/mcp-server/src/tools/profile.ts +0 -122
  668. package/neural-interface/lib/assistant-brains/opencode-browser-policy.js +0 -47
  669. package/neural-interface/lib/assistant-brains/opencode-route-gate.js +0 -62
  670. package/neural-interface/lib/mcp-profile-servers.js +0 -120
  671. package/neural-interface/public/shared/ui-tutorial-draw.js +0 -311
  672. package/skills/leonardo/SKILL.md +0 -168
  673. package/skills/leonardo/icon.svg +0 -1
  674. package/skills/leonardo/modules/browser-guide.md +0 -378
  675. package/skills/leonardo/modules/image-prompter.md +0 -283
  676. package/skills/leonardo/modules/model-advisor.md +0 -100
  677. package/skills/leonardo/modules/prompt-library.md +0 -110
  678. package/skills/leonardo/modules/style-guide.md +0 -186
  679. package/skills/leonardo/modules/video-prompter.md +0 -317
@@ -1,4 +1,8 @@
1
1
  {
2
+ "workerRestart": {
3
+ "suspended": "Suspensa — esta execução será retomada assim que o SynaBun voltar.",
4
+ "resumed": "Retomada após a reinicialização do servidor — a execução continua aqui."
5
+ },
2
6
  "common": {
3
7
  "save": "Salvar",
4
8
  "cancel": "Cancelar",
@@ -49,6 +53,7 @@
49
53
  "graph": "Grafo",
50
54
  "skills": "Skills",
51
55
  "automations": "Automações",
56
+ "schedules": "Agendamentos",
52
57
  "games": "Jogos",
53
58
  "apps": "Aplicativos",
54
59
  "bookmarks": "Favoritos",
@@ -96,10 +101,104 @@
96
101
  "openCode": "OpenCode",
97
102
  "shell": "Terminal shell",
98
103
  "browser": "Navegador",
104
+ "browserApps": "Apps do navegador",
99
105
  "youtube": "YouTube",
100
106
  "showTerminal": "Mostrar terminal"
101
107
  }
102
108
  },
109
+ "contextMenu": {
110
+ "label": "Menu de contexto",
111
+ "page": {
112
+ "back": "Voltar",
113
+ "forward": "Avançar",
114
+ "reload": "Recarregar",
115
+ "copyUrl": "Copiar URL da página",
116
+ "fullscreen": "Tela cheia",
117
+ "exitFullscreen": "Sair da tela cheia",
118
+ "submenu": "Página"
119
+ },
120
+ "selection": {
121
+ "copy": "Copiar",
122
+ "search": "Buscar memórias por “{text}”",
123
+ "sendToAi": "Enviar ao painel de IA"
124
+ },
125
+ "link": {
126
+ "open": "Abrir link em nova aba",
127
+ "copy": "Copiar endereço do link"
128
+ },
129
+ "image": {
130
+ "open": "Abrir imagem em nova aba",
131
+ "copy": "Copiar endereço da imagem"
132
+ },
133
+ "memory": {
134
+ "open": "Abrir memória",
135
+ "linked": "Mostrar memórias vinculadas",
136
+ "copyId": "Copiar ID da memória",
137
+ "sendToAi": "Enviar ao painel de IA",
138
+ "select": "Adicionar à seleção",
139
+ "deselect": "Remover da seleção",
140
+ "goToIsland": "Ir para {name}",
141
+ "closeCard": "Fechar cartão"
142
+ },
143
+ "map": {
144
+ "goTo": "Ir para {name}",
145
+ "frameAll": "Enquadrar todo o mapa",
146
+ "options": "Opções do mapa",
147
+ "neighbors": "Vizinhos ao selecionar",
148
+ "recency": "Brilho de atividade recente",
149
+ "grid": "Grade do mapa",
150
+ "clearSearch": "Limpar busca",
151
+ "clearSelection": "Limpar seleção",
152
+ "switchTo2d": "Mudar para a visão 2D",
153
+ "switchTo3d": "Mudar para a visão 3D",
154
+ "minimap": "Minimapa",
155
+ "regionGlow": "Brilho das regiões"
156
+ },
157
+ "focus": {
158
+ "tool": "Ferramenta",
159
+ "tools": {
160
+ "select": "Selecionar",
161
+ "text": "Texto",
162
+ "list": "Lista",
163
+ "arrow": "Seta",
164
+ "shape": "Forma",
165
+ "pen": "Lápis",
166
+ "section": "Seção de wireframe"
167
+ },
168
+ "multiSelect": "Seleção múltipla",
169
+ "undo": "Desfazer",
170
+ "redo": "Refazer",
171
+ "selectAll": "Selecionar tudo",
172
+ "exit": "Sair do modo de foco"
173
+ },
174
+ "app": {
175
+ "open": "Abrir",
176
+ "search": "Buscar memórias",
177
+ "shortcuts": "Atalhos de teclado",
178
+ "settings": "Ajustes"
179
+ },
180
+ "open": {
181
+ "assistant": "Assistente",
182
+ "claudePanel": "Painel do Claude Code",
183
+ "codexPanel": "Painel do Codex",
184
+ "opencodePanel": "Painel do OpenCode",
185
+ "terminal": "Novo terminal",
186
+ "claudeTerminal": "Terminal do Claude Code",
187
+ "browser": "Navegador",
188
+ "fileExplorer": "Explorador de Arquivos",
189
+ "memoryExplorer": "Explorador de memórias",
190
+ "categories": "Categorias",
191
+ "focusMode": "Modo de foco",
192
+ "skills": "Estúdio de Skills",
193
+ "automations": "Estúdio de automações",
194
+ "schedules": "Agendamentos",
195
+ "styleGuide": "Guia de estilo",
196
+ "commandRunner": "Executor de comandos",
197
+ "imageGallery": "Galeria de imagens",
198
+ "notifications": "Notificações",
199
+ "help": "Ajuda"
200
+ }
201
+ },
103
202
  "search": {
104
203
  "placeholder": "Buscar memórias...",
105
204
  "searching": "Buscando...",
@@ -627,6 +726,7 @@
627
726
  "reasonMaxTurns": "A execução atingiu o limite de turnos.",
628
727
  "reasonIdle": "O agente esperou uma nova instrução que não veio e foi fechado.",
629
728
  "reasonRestart": "O servidor reiniciou com a execução aberta.",
729
+ "reasonRestartNotResumed": "O servidor reiniciou com a execução aberta, e ela não pôde continuar: {reason}",
630
730
  "reasonKillAll": "Parada junto com todas as outras execuções.",
631
731
  "reasonCleared": "O estado da execução foi removido.",
632
732
  "reasonOther": "Parada ({reason}).",
@@ -1328,7 +1428,7 @@
1328
1428
  },
1329
1429
  "connected_tools": {
1330
1430
  "label": "Ferramentas conectadas",
1331
- "help": "Servidores e perfis"
1431
+ "help": "Ferramentas padrão e servidores MCP"
1332
1432
  },
1333
1433
  "tool_access": {
1334
1434
  "label": "Acesso a ferramentas",
@@ -1357,6 +1457,10 @@
1357
1457
  "about": {
1358
1458
  "label": "Sobre",
1359
1459
  "help": "Versão, links e licenças"
1460
+ },
1461
+ "app": {
1462
+ "label": "App",
1463
+ "help": "Atualizações, inicialização e janela"
1360
1464
  }
1361
1465
  },
1362
1466
  "page": {
@@ -1382,7 +1486,7 @@
1382
1486
  },
1383
1487
  "connected_tools": {
1384
1488
  "title": "Ferramentas conectadas",
1385
- "purpose": "Escolha quais ferramentas cada perfil de assistente pode usar, adicione servidores de ferramentas e gerencie perfis do MoreLogin."
1489
+ "purpose": "Escolha as ferramentas padrão do SynaBun, adicione servidores de ferramentas e gerencie perfis de navegador do MoreLogin."
1386
1490
  },
1387
1491
  "tool_access": {
1388
1492
  "title": "Acesso a ferramentas",
@@ -1411,6 +1515,10 @@
1411
1515
  "about": {
1412
1516
  "title": "Sobre",
1413
1517
  "purpose": "A versão que você usa, onde ela roda e o software de código aberto com que o SynaBun é feito."
1518
+ },
1519
+ "app": {
1520
+ "title": "App",
1521
+ "purpose": "Como o SynaBun se atualiza, inicia e funciona neste computador."
1414
1522
  }
1415
1523
  },
1416
1524
  "section": {
@@ -1537,10 +1645,6 @@
1537
1645
  }
1538
1646
  },
1539
1647
  "connected_tools": {
1540
- "tool_profiles": {
1541
- "title": "Perfis de ferramentas",
1542
- "purpose": "Escolha quais grupos de ferramentas do SynaBun cada perfil carrega. Menos ferramentas geram respostas mais rápidas e baratas."
1543
- },
1544
1648
  "added_servers": {
1545
1649
  "title": "Servidores adicionados",
1546
1650
  "purpose": "Servidores de ferramentas de terceiros registrados nos seus assistentes e plugins do Claude Code."
@@ -1560,6 +1664,10 @@
1560
1664
  "morelogin_tool_server": {
1561
1665
  "title": "Servidor de ferramentas do MoreLogin",
1562
1666
  "purpose": "Adicione, se quiser, o servidor de ferramentas do MoreLogin aos seus assistentes."
1667
+ },
1668
+ "default_tools": {
1669
+ "title": "Ferramentas padrão",
1670
+ "purpose": "Escolha os grupos do SynaBun para novos ambientes de execução."
1563
1671
  }
1564
1672
  },
1565
1673
  "projects": {
@@ -1751,6 +1859,24 @@
1751
1859
  "title": "Dependências",
1752
1860
  "purpose": "Cada pacote que acompanha o SynaBun, a versão instalada aqui e a licença dele."
1753
1861
  }
1862
+ },
1863
+ "app": {
1864
+ "updates": {
1865
+ "title": "Atualizações",
1866
+ "purpose": "A versão que você usa e como o SynaBun recebe as novas."
1867
+ },
1868
+ "startup": {
1869
+ "title": "Inicialização",
1870
+ "purpose": "Se o SynaBun inicia quando você entra na sua conta."
1871
+ },
1872
+ "window": {
1873
+ "title": "Janela",
1874
+ "purpose": "O que a janela do app SynaBun faz."
1875
+ },
1876
+ "maintenance": {
1877
+ "title": "Manutenção",
1878
+ "purpose": "As pastas do SynaBun e um reinício quando algo precisar."
1879
+ }
1754
1880
  }
1755
1881
  },
1756
1882
  "common": {
@@ -1940,10 +2066,6 @@
1940
2066
  "label": "Resumir conversas longas automaticamente",
1941
2067
  "help": "Resume mensagens antigas antes de o modelo ficar sem espaço."
1942
2068
  },
1943
- "ocp014": {
1944
- "label": "Descartar resultados antigos de ferramentas",
1945
- "help": "Remove resultados antigos de comandos e ferramentas da conversa para economizar espaço."
1946
- },
1947
2069
  "ocp015": {
1948
2070
  "label": "Espaço reservado (tokens)",
1949
2071
  "help": "Quanto espaço sempre fica disponível para a próxima resposta do modelo."
@@ -2381,8 +2503,8 @@
2381
2503
  "help": "Restaura cada campo ao padrão. Nada é salvo até você pressionar Salvar."
2382
2504
  },
2383
2505
  "mcp001": {
2384
- "label": "Perfis de ferramentas ou servidores adicionados",
2385
- "help": "Alterna entre os perfis de ferramentas e os servidores adicionados."
2506
+ "label": "Ferramentas padrão ou servidores adicionados",
2507
+ "help": "Alterna entre as ferramentas padrão e os servidores adicionados."
2386
2508
  },
2387
2509
  "mcp006": {
2388
2510
  "label": "+ Adicionar servidor",
@@ -2796,10 +2918,6 @@
2796
2918
  "label": "Todas as ferramentas de automação",
2797
2919
  "help": "Ativa ou desativa todas as ferramentas deste grupo de uma vez."
2798
2920
  },
2799
- "per007": {
2800
- "label": "Todas as ferramentas do Leonardo",
2801
- "help": "Ativa ou desativa todas as ferramentas deste grupo de uma vez."
2802
- },
2803
2921
  "per008": {
2804
2922
  "label": "Todas as ferramentas de imagens",
2805
2923
  "help": "Ativa ou desativa todas as ferramentas deste grupo de uma vez."
@@ -3033,16 +3151,16 @@
3033
3151
  "help": "Mostra se os ajustes do navegador foram salvos."
3034
3152
  },
3035
3153
  "mcp022": {
3036
- "label": "Grupos de ferramentas por perfil",
3037
- "help": "Uma coluna por perfil, uma linha por grupo de ferramentas."
3154
+ "label": "Ferramentas padrão",
3155
+ "help": "Vale para novos ambientes de execução. Sessões em andamento mantêm suas próprias ferramentas."
3038
3156
  },
3039
3157
  "mcp024": {
3040
3158
  "label": "Ferramentas sempre ativas",
3041
- "help": "Ferramentas mantidas em todos os perfis."
3159
+ "help": "Ferramentas disponíveis em todo ambiente de execução."
3042
3160
  },
3043
3161
  "mcp026": {
3044
3162
  "label": "Servidores adicionados",
3045
- "help": "Servidores de ferramentas registrados nos seus assistentes."
3163
+ "help": "Revise cada servidor adicionado, seu tipo de conexão e o acesso dos agentes."
3046
3164
  },
3047
3165
  "mcp027": {
3048
3166
  "label": "Argumentos do comando",
@@ -3308,6 +3426,10 @@
3308
3426
  "label": "Escrever agora",
3309
3427
  "help": "Pede a frase ao escritor agora, sem esperar o segundo plano: uma chamada pequena no modelo Claude mais barato."
3310
3428
  },
3429
+ "aut061": {
3430
+ "label": "Proteger workers",
3431
+ "help": "O que um worker que o Assistente despacha com capacidade somente leitura ou workspace pode tocar, no Claude Code, no Codex e no OpenCode igualmente: escritas só dentro da pasta de trabalho, da pasta temporária e da sua própria pasta de rascunho; nunca em ~/.claude, ~/.codex, ~/.agents, ~/.config/opencode, ~/.synabun ou outro projeto; um worker somente leitura só executa comandos de leitura. A capacidade completa nunca é limitada."
3432
+ },
3311
3433
  "edt001": {
3312
3434
  "label": "Sugerir código enquanto digito",
3313
3435
  "help": "Cada vez que você para de digitar, o código ao redor do cursor é enviado ao modelo escolhido abaixo, e a sugestão aparece como texto cinza. Os arquivos da lista “Nunca enviados” não são enviados. Desligado: nada é enviado e nenhum modelo é consultado."
@@ -3411,6 +3533,62 @@
3411
3533
  "abt003": {
3412
3534
  "label": "Filtrar dependências",
3413
3535
  "help": "Mostra só os pacotes cujo nome contém o que você digitar."
3536
+ },
3537
+ "sys001": {
3538
+ "label": "Procurar atualizações",
3539
+ "help": "Procura agora uma versão mais nova do SynaBun."
3540
+ },
3541
+ "sys002": {
3542
+ "label": "Atualizações automáticas",
3543
+ "help": "Procura novas versões sozinho. No app para desktop, também as instala quando o SynaBun está ocioso."
3544
+ },
3545
+ "sys003": {
3546
+ "label": "Instalar atualização",
3547
+ "help": "Abre a atualização com as notas da versão e, se você quiser, um backup antes."
3548
+ },
3549
+ "sys004": {
3550
+ "label": "Iniciar ao entrar",
3551
+ "help": "Inicia o SynaBun quando você entra na sua conta neste computador."
3552
+ },
3553
+ "sys005": {
3554
+ "label": "Iniciar em segundo plano",
3555
+ "help": "Ao entrar, o SynaBun inicia sem abrir a janela. Abra o SynaBun para mostrá-la."
3556
+ },
3557
+ "sys006": {
3558
+ "label": "Continuar em execução ao fechar a janela",
3559
+ "help": "Fechar a janela deixa o SynaBun na bandeja, e suas ferramentas de IA mantêm a memória. Desligado: fechar a janela encerra o SynaBun."
3560
+ },
3561
+ "sys007": {
3562
+ "label": "Aceleração de hardware",
3563
+ "help": "Desenha a janela com a placa de vídeo. Desligue se a janela piscar ou ficar em branco. Vale depois de reiniciar."
3564
+ },
3565
+ "sys008": {
3566
+ "label": "Reiniciar agora",
3567
+ "help": "Fecha o SynaBun e o abre de novo."
3568
+ },
3569
+ "sys009": {
3570
+ "label": "Abrir pasta de dados",
3571
+ "help": "Mostra a pasta com suas memórias, configurações e backups."
3572
+ },
3573
+ "sys010": {
3574
+ "label": "Abrir pasta de logs",
3575
+ "help": "Mostra a pasta com os logs do SynaBun, para relatar um problema."
3576
+ },
3577
+ "sys011": {
3578
+ "label": "Reiniciar o SynaBun",
3579
+ "help": "Reinicia o servidor do SynaBun: o mesmo que Restart Server no menu Apps."
3580
+ },
3581
+ "aut062": {
3582
+ "label": "Hooks do SynaBun no Claude Code",
3583
+ "help": "Memória, recall e registro de planos nas sessões do Claude Code que você mesmo abre (um terminal, o VS Code, o app desktop) e no cérebro Claude do Assistente, que os lê do mesmo ~/.claude/settings.json."
3584
+ },
3585
+ "mcp004": {
3586
+ "label": "Remover servidor adicionado",
3587
+ "help": "Remove este servidor do SynaBun."
3588
+ },
3589
+ "mcp005": {
3590
+ "label": "Agentes podem usá-lo",
3591
+ "help": "Permite este servidor em tarefas do Codex, OpenCode e Claude e no seletor de ferramentas do OpenCode."
3414
3592
  }
3415
3593
  },
3416
3594
  "pane": {
@@ -3471,8 +3649,6 @@
3471
3649
  "permanentlyClearOpencodeHistory": "Limpar permanentemente o histórico do OpenCode?",
3472
3650
  "currentlyStored": "· {formatBytes} armazenados atualmente",
3473
3651
  "thisCannotBeUndone": "Isso não pode ser desfeito.",
3474
- "activeConversationsOrAutomationsMustBe": "Conversas ou automações ativas precisam ser interrompidas primeiro; o SynaBun recusará a limpeza se alguma estiver em execução. Depois, ele parará o OpenCode, apagará o banco de dados do histórico e artefatos relacionados, compactará o banco e reiniciará o OpenCode se ele estava em execução. Um histórico grande pode levar vários minutos.",
3475
- "deletesConversationsMessagesToolOutputTo": "Exclui conversas, mensagens, resultados de ferramentas, tarefas, compartilhamentos, snapshots, diferenças e caches de transcrições renderizadas.",
3476
3652
  "deletesSynabunSDerivedOpencodeResume": "Exclui o índice derivado do SynaBun para retomar sessões e buscar no OpenCode.",
3477
3653
  "keepsProviderCredentialsAccountConfigSet": "Mantém credenciais dos provedores, ajustes de conta/configuração, arquivos de projetos e seu histórico do git.",
3478
3654
  "type": "Tipo",
@@ -3480,7 +3656,6 @@
3480
3656
  "cancel": "Cancelar",
3481
3657
  "clearHistoryPermanently": "Limpar histórico permanentemente",
3482
3658
  "clearing": "Limpando…",
3483
- "stoppingOpencodeAndClearingItsHistory": "Parando o OpenCode e limpando seu histórico. Mantenha o SynaBun aberto…",
3484
3659
  "historyWasClearedWarningReloadingSynabun": "O histórico foi limpo. Aviso: {value} Recarregando SynaBun…",
3485
3660
  "clearedReloadingSynabun": "{formatCount}{reclaimed} limpos. Recarregando SynaBun…",
3486
3661
  "andReclaimed": "e {formatBytes} liberados",
@@ -3488,7 +3663,6 @@
3488
3663
  "opencodeHistoryClearedWithAWarning": "Histórico do OpenCode limpo com um aviso",
3489
3664
  "opencodeHistoryCleared": "Histórico do OpenCode limpo",
3490
3665
  "couldNotClearOpencodeHistory": "Não foi possível limpar o histórico do OpenCode",
3491
- "writingProviderConfigAndRestartingOpenco": "Gravando configuração do provedor e reiniciando OpenCode…",
3492
3666
  "installFrom": "Instalar de",
3493
3667
  "orRun": "ou execute",
3494
3668
  "noModelsRun": "Nenhum modelo — execute",
@@ -3498,7 +3672,6 @@
3498
3672
  "modelReadyToConfigure": "modelo{count} · Pronto para configurar…",
3499
3673
  "local": "(neste computador)",
3500
3674
  "removing": "Removendo…",
3501
- "ollamaProviderRemovedServerRestarting": "Provedor Ollama removido — reiniciando servidor…",
3502
3675
  "noProvidersFound": "Nenhum provedor encontrado",
3503
3676
  "changeKey": "Alterar chave",
3504
3677
  "enterApiKey": "Inserir chave de API",
@@ -3510,9 +3683,7 @@
3510
3683
  "disableAll": "Desativar tudo",
3511
3684
  "noProvidersMatchThisFilter": "Nenhum provedor corresponde a este filtro",
3512
3685
  "saving": "Salvando…",
3513
- "apiKeySavedForServerRestarting": "Chave de API salva para {provId} — reiniciando servidor…",
3514
3686
  "removeApiKeyFor": "Remover chave de API de {provId}?",
3515
- "apiKeyRemovedForServerRestarting": "Chave de API removida de {provId} — reiniciando servidor…",
3516
3687
  "failedToRemoveKey": "Falha ao remover chave",
3517
3688
  "connecting": "Conectando…",
3518
3689
  "connected": "{provId} conectado",
@@ -3525,7 +3696,6 @@
3525
3696
  "failedToLoadTools": "Falha ao carregar ferramentas",
3526
3697
  "failedToOpenOpencodeConfig": "Falha ao abrir configuração do OpenCode",
3527
3698
  "startTheServerToSeeProviders": "Inicie o servidor para ver provedores",
3528
- "startTheServerToLoadTools": "Inicie o servidor para carregar ferramentas",
3529
3699
  "historyWipeFailedHttp": "Falha na limpeza do histórico (HTTP {status})",
3530
3700
  "configuring": "Configurando…",
3531
3701
  "notDetected": "Não detectado",
@@ -3569,7 +3739,33 @@
3569
3739
  },
3570
3740
  "removeConfirm": "Remover…",
3571
3741
  "envVarTitle": "Variável de ambiente: {env}",
3572
- "storedConversations": "Conversas armazenadas"
3742
+ "storedConversations": "Conversas armazenadas",
3743
+ "bufferDefault": "Padrão do OpenCode",
3744
+ "saveFailed": "Não foi salvo: {message}",
3745
+ "installedVersion": "OpenCode {version} · {path}",
3746
+ "notInstalled": "O SynaBun não encontrou o OpenCode. Instale o OpenCode 2 ({commands}) ou escolha um em Caminhos dos executáveis.",
3747
+ "refusal": {
3748
+ "opencode1": "O SynaBun funciona apenas com o OpenCode 2, e o OpenCode encontrado ({path}) é a versão {version}. Instale o OpenCode 2 ({commands}; o pacote opencode-ai do npm ainda é o OpenCode 1) ou escolha um OpenCode 2 em Caminhos dos executáveis.",
3749
+ "outdated": "O SynaBun precisa do OpenCode {minimum} ou mais recente, e o OpenCode encontrado ({path}) é a versão {version}. Atualize-o com {update}.",
3750
+ "newer": "O OpenCode {version} ({path}) é mais recente do que o SynaBun suporta: o SynaBun funciona apenas com o OpenCode 2, então instale o OpenCode 2 ({commands}) ou escolha um OpenCode 2 em Caminhos dos executáveis."
3751
+ },
3752
+ "commandOr": "{first} ou {second}",
3753
+ "notSupportedStatus": "Não suportado",
3754
+ "notInstalledStatus": "Não instalado",
3755
+ "jsoncWins": "O OpenCode também lê {path}, e o que ele define prevalece sobre o arquivo acima.",
3756
+ "apiKeySaved": "Chave de API salva para {provId}",
3757
+ "apiKeyRemoved": "Chave de API removida de {provId}",
3758
+ "oauthCodePlaceholder": "Cole o código…",
3759
+ "oauthCodeFor": "Código de autorização de {name}",
3760
+ "oauthConnect": "Conectar",
3761
+ "oauthFailed": "Falha no login: {message}",
3762
+ "oauthExpired": "O login expirou. Comece de novo.",
3763
+ "oauthGaveUp": "O login não terminou. Comece de novo quando estiver pronto.",
3764
+ "writingProviderConfig": "Gravando a configuração do provedor…",
3765
+ "ollamaProviderRemoved": "Provedor Ollama removido",
3766
+ "historyClearSteps": "Conversas ou automações ativas precisam ser paradas antes; o SynaBun recusa a limpeza enquanto alguma estiver em execução. Depois o SynaBun encerra as próprias sessões do OpenCode e pede ao OpenCode que apague todas as conversas. Um histórico grande pode levar alguns minutos.",
3767
+ "historyClearDeletes": "Apaga as conversas com suas mensagens, saídas de ferramentas, tarefas e diffs, e os caches de transcrições renderizadas do SynaBun.",
3768
+ "historyClearWorking": "Apagando as conversas do OpenCode. Mantenha o SynaBun aberto…"
3573
3769
  },
3574
3770
  "setup": {
3575
3771
  "registeredIn": "Conectado por {file}",
@@ -3637,7 +3833,7 @@
3637
3833
  "versionOfTheRulesIsAvailable": "A versão {version} das regras está disponível.",
3638
3834
  "aNewerVersionOfTheRules": "Uma versão mais recente das regras está disponível.",
3639
3835
  "theLastRemovalDidNotFinish": "A última remoção não foi concluída. {error}",
3640
- "theLineInConfigJsonThat": "A linha em config.json que as lista não foi adicionada pelo SynaBun e também é removida.",
3836
+ "theLineInConfigJsonThat": "A linha em opencode.json que as lista não foi adicionada pelo SynaBun e também é removida.",
3641
3837
  "yourEditedRulesWereLeftIn": "Suas regras editadas de {label} foram mantidas: {path}",
3642
3838
  "pastedCopyRemoved": "Cópia colada removida",
3643
3839
  "nothingToRemove": "Nada para remover",
@@ -3653,7 +3849,7 @@
3653
3849
  "failed2": "Falhou: {message}",
3654
3850
  "wasNotFoundOnThisMachine": "{label} não foi encontrado neste computador, então não há onde instalar suas regras.",
3655
3851
  "rulesAreAlreadyCurrent": "As regras de {label} já estão atualizadas",
3656
- "rulesWereLeftInPlaceConfig": "As regras de {label} foram mantidas: config.json as lista em uma linha que o SynaBun não adicionou. Remova novamente para excluir ambas.",
3852
+ "rulesWereLeftInPlaceConfig": "As regras de {label} foram mantidas: opencode.json as lista em uma linha que o SynaBun não adicionou. Remova novamente para excluir ambas.",
3657
3853
  "rulesRemoved2": "Regras de {label} removidas",
3658
3854
  "rulesInstalled2": "Regras de {label} instaladas",
3659
3855
  "rulesUpdated2": "Regras de {label} atualizadas",
@@ -4076,14 +4272,13 @@
4076
4272
  },
4077
4273
  "mcp": {
4078
4274
  "tab": {
4079
- "profiles": "Perfis de ferramentas",
4080
- "installed": "Servidores adicionados"
4081
- },
4082
- "profilesHelp": "Ative ou desative grupos de ferramentas para cada perfil. Clique no nome de um perfil para torná-lo ativo.",
4083
- "noteTitle": "Apenas onde as ferramentas são usadas.",
4084
- "noteBody": "Um perfil carrega só as ferramentas necessárias para um tipo de trabalho, economizando tokens e tempo.",
4085
- "externalServers": "Servidores que você adicionou",
4086
- "externalServersHelp": "Ative ou desative cada servidor adicionado por perfil.",
4275
+ "installed": "Servidores adicionados",
4276
+ "tools": "Ferramentas padrão"
4277
+ },
4278
+ "noteTitle": "Escopo",
4279
+ "noteBody": "OpenCode e Gemini carregam os grupos selecionados. Claude Code e Codex acessam todas as ferramentas do SynaBun sob demanda.",
4280
+ "externalServers": "Seus outros servidores MCP",
4281
+ "externalServersHelp": "Aplica-se a workers e automações do Codex, OpenCode e Claude, incluindo FleetView, e ao seletor de ferramentas do OpenCode. Outras sessões controladas por você mantêm seus servidores.",
4087
4282
  "installedHelp": "Todos os servidores de ferramentas de terceiros registrados no Claude Code, OpenCode, Codex, Gemini ou SynaBun. Os grupos de ferramentas do SynaBun não são listados aqui.",
4088
4283
  "plugins": "Plugins do Claude Code",
4089
4284
  "pluginsHelp": "Plugins instalados de repositórios do GitHub com uma pasta .claude-plugin. São vinculados em ~/.claude/plugins.",
@@ -4107,15 +4302,10 @@
4107
4302
  "env": "Variáveis de ambiente",
4108
4303
  "envHelp": "Valores lidos pelo servidor ao iniciar, como uma chave de API.",
4109
4304
  "addVariable": "+ Adicionar variável",
4110
- "noProfiles": "Nenhum perfil",
4111
4305
  "toolGroups": "Grupos de ferramentas",
4112
- "deleteProfile": "Excluir perfil",
4113
- "newProfile": "Novo perfil",
4114
- "profileSwitchedTo": "Perfil alterado para {name}",
4115
4306
  "name": "nome",
4116
4307
  "alwaysOn": "Sempre ativado",
4117
4308
  "noExternalServersConfigured": "Nenhum servidor externo configurado",
4118
- "availableToAnyProfileYouEnable": "Disponível para qualquer perfil que você ativar abaixo.",
4119
4309
  "removeServer": "Remover servidor",
4120
4310
  "disable": "Desativar",
4121
4311
  "enable": "Ativar",
@@ -4140,7 +4330,8 @@
4140
4330
  "synabunRegistry": "Registro do SynaBun",
4141
4331
  "repoAlsoShipsAClaudeCode": "(o repositório também inclui um plugin do Claude Code — instale separadamente se quiser)",
4142
4332
  "skippedLocalDeps": "⚙ Dependências locais ignoradas — {reason}",
4143
- "error": "Erro: {message}"
4333
+ "error": "Erro: {message}",
4334
+ "defaultToolsHelp": "Vale para novos ambientes de execução. Sessões em andamento mantêm suas próprias ferramentas."
4144
4335
  },
4145
4336
  "product": {
4146
4337
  "claudeCode": "Claude Code",
@@ -4195,7 +4386,63 @@
4195
4386
  "skills": {
4196
4387
  "installFor": "Instalar /{skill} para {assistant}",
4197
4388
  "targets": "Assistentes que têm /{skill}",
4198
- "none": "Nenhuma skill registrada."
4389
+ "none": "Nenhuma skill registrada.",
4390
+ "folders": {
4391
+ "title": "Pastas de skills",
4392
+ "loading": "Lendo as pastas de skills…",
4393
+ "unavailable": "O servidor em execução ainda não conhece as pastas de skills: reinicie o SynaBun para vê-las aqui.",
4394
+ "bridgesNone": "Toda skill que o SynaBun instalou para o Codex e o OpenCode tem uma pasta própria. Nada a mover.",
4395
+ "bridgesOne": "Uma skill ainda chega ao Codex ou ao OpenCode por um arquivo-ponte antigo. Revise a mudança para dar a ela uma pasta de skill própria: a ponte fica guardada no registro da mudança, e a mudança pode ser desfeita.",
4396
+ "bridgesMany": "{count} skills ainda chegam ao Codex ou ao OpenCode por arquivos-ponte antigos. Revise a mudança para dar a cada uma uma pasta de skill própria: as pontes ficam guardadas no registro da mudança, e a mudança pode ser desfeita.",
4397
+ "othersOne": "Um outro arquivo nessas pastas de prompts e comandos não é uma ponte do SynaBun (ou foi alterado depois que o SynaBun o escreveu): ele nunca é movido.",
4398
+ "othersMany": "{count} outros arquivos nessas pastas de prompts e comandos não são pontes do SynaBun (ou foram alterados depois que o SynaBun os escreveu): eles nunca são movidos.",
4399
+ "review": "Revisar a mudança",
4400
+ "move": "Mover",
4401
+ "cancel": "Cancelar",
4402
+ "undo": "Desfazer a última mudança",
4403
+ "stepMigrate": "{runtime} {name}: vira uma pasta de skill em {destination}; o arquivo-ponte é removido depois de guardado no registro da mudança.",
4404
+ "stepLeave": "{runtime} {name}: fica como está. {why}",
4405
+ "stepBlocked": "{runtime} {name}: ainda não pode ser movido. {why}",
4406
+ "planChanged": "As pontes ou as pastas de skill mudaram desde que o plano foi mostrado. Nada foi movido: aqui está o novo plano.",
4407
+ "nothing": "Nada a mover: não sobrou nenhuma ponte do SynaBun para virar pasta de skill.",
4408
+ "moved": "Movido. Os arquivos-ponte antigos ficam guardados no registro da mudança ({id}); Desfazer a última mudança os devolve.",
4409
+ "movedPartly": "Movido em parte. Não movido: {details}",
4410
+ "undone": "A mudança foi desfeita: os arquivos-ponte voltaram, e as pastas de skill que ela criou foram removidas.",
4411
+ "undonePartly": "Desfeito em parte: {details}",
4412
+ "failed": "Não funcionou: {message}",
4413
+ "sharedLabel": "Pasta de skills compartilhada (~/.agents/skills)",
4414
+ "sharedHelp": "Desligado: o SynaBun instala uma skill na pasta própria de cada assistente. Ligado: uma instalação também pode ir para ~/.agents/skills, que o Codex e o OpenCode leem.",
4415
+ "sharedOn": "Ligado",
4416
+ "sharedOff": "Desligado",
4417
+ "stepOffer": "{runtime} {name}: um arquivo-ponte que o SynaBun não consegue provar que é seu ({why}) Marque para movê-lo também: vira a pasta de skill {name} do SynaBun, e o arquivo fica guardado no registro da mudança.",
4418
+ "stepConfirmed": "{runtime} {name}: movido também, como você confirmou: vira uma pasta de skill em {destination}; o arquivo fica guardado no registro da mudança.",
4419
+ "offerTick": "Mover {name} também",
4420
+ "autoNote": "O SynaBun move por conta própria, ao iniciar, os arquivos-ponte que reconhece como seus (o Estúdio de Skills avisa uma vez, com Desfazer). O que ele não reconhece espera aqui por você."
4421
+ },
4422
+ "chip": {
4423
+ "installed": "/{skill} está instalada para {assistant}. Clique para removê-la.",
4424
+ "native": "/{skill} está instalada para {assistant} como uma pasta de skill própria. Clique para removê-la.",
4425
+ "bridge": "/{skill} chega a {assistant} por um arquivo-ponte antigo. Clique para removê-la, ou mova-a para uma pasta de skill em Pastas de skills.",
4426
+ "other": "{assistant} tem uma /{skill} que o SynaBun não instalou. Clique para instalar a do SynaBun: você é consultado antes de qualquer substituição.",
4427
+ "shared": "/{skill} chega a {assistant} pela pasta compartilhada ~/.agents/skills (o Codex e o OpenCode a leem). Clique para removê-la de lá.",
4428
+ "otherShared": "{assistant} lê uma /{skill} em ~/.agents/skills que o SynaBun não instalou: outra cópia apareceria duas vezes.",
4429
+ "installedShared": "/{skill} já chega a {runtime} pela pasta compartilhada ~/.agents/skills: nada foi adicionado.",
4430
+ "installedNative": "/{skill} está instalada para {runtime} como uma pasta de skill própria.",
4431
+ "installedReload": "/{skill} está instalada para {runtime}. A pasta de skills é nova: rode /reload-skills nas sessões já abertas.",
4432
+ "installedNewSession": "/{skill} está instalada para {runtime}: inicie uma nova sessão do {runtime} para usá-la.",
4433
+ "installedBridgeLeft": "/{skill} está instalada para {runtime} como uma pasta de skill própria. O arquivo-ponte antigo ainda está lá: mova-o em Pastas de skills."
4434
+ },
4435
+ "openStudio": "Abrir o Estúdio de Skills",
4436
+ "openStudioHelp": "Edite, versione e publique skills, agentes e comandos, e revise o que o Assistente faz, no Estúdio de Skills.",
4437
+ "assistants": {
4438
+ "title": "Meus assistentes",
4439
+ "help": "Uma nova instalação vai para estes assistentes, a menos que uma revisão nomeie outros; o Estúdio de Skills os marca em Publicar.",
4440
+ "detected": "Detectados neste computador: {detected}.",
4441
+ "chosen": "Sua escolha; detectados neste computador: {detected}.",
4442
+ "useDetected": "Usar o que foi detectado",
4443
+ "chipOn": "Novas skills instalam para {assistant}. Clique para deixá-lo de fora.",
4444
+ "chipOff": "Novas skills não instalam para {assistant}. Clique para incluí-lo."
4445
+ }
4199
4446
  },
4200
4447
  "permissions": {
4201
4448
  "all": "Tudo",
@@ -4315,6 +4562,31 @@
4315
4562
  "noKeyConfiguredTunnelIsOpen": "Nenhuma chave configurada - o túnel está aberto",
4316
4563
  "generateKey": "Gerar chave",
4317
4564
  "failed2": "Falhou: {message}",
4565
+ "workerGuard": {
4566
+ "mode": {
4567
+ "enforce": "Aplicar",
4568
+ "warn": "Só avisar",
4569
+ "off": "Desligado"
4570
+ },
4571
+ "modeHelp": {
4572
+ "enforce": "Uma chamada fora da capacidade é recusada, com o motivo na transcrição da execução. No macOS, os workers do Claude Code e do OpenCode rodam ainda dentro de um sandbox do SO (Seatbelt) que bloqueia a porta de controle do próprio SynaBun, então nada que executem a alcança; um worker Codex contido roda com a rede do shell desligada (sem internet — a rede do sandbox do Codex é tudo ou nada). Fora do macOS vale a proteção em código, sem o sandbox do SO. Claude Code: um hook em cada chamada de ferramenta. Codex: o seu sandbox, sem a pasta-mãe. OpenCode: regras na configuração da execução, cada pergunta respondida pela política.",
4573
+ "warn": "Nada novo é recusado e nenhum sandbox do SO é aplicado. O Claude Code mantém a lista de ferramentas de somente leitura de antes (sem shell em somente leitura); o Codex mantém o seu sandbox e a internet como antes (a pasta-mãe gravável em workspace); o OpenCode responde \"uma vez\" a cada pergunta. Cada chamada que Aplicar recusaria — e a internet que ele cortaria de um worker Codex — é anotada na transcrição da execução.",
4574
+ "off": "A capacidade é só instrução, como antes desta opção: o Codex mantém o seu sandbox (a pasta-mãe gravável), o Claude Code e o OpenCode não são contidos."
4575
+ },
4576
+ "applies": "Vale para workers iniciados a partir de agora; um worker em execução mantém o modo com que começou.",
4577
+ "sandboxFallback": "O Proteger workers não conseguiu aplicar o sandbox do macOS a esta execução ({reason}); a proteção interna está ativa.",
4578
+ "sandboxStrict": "O Proteger workers não conseguiu verificar quais programas locais poderiam retransmitir esta execução ao SynaBun ({reason}), então o sandbox dela é mais restrito: servidores locais não ficam acessíveis nesta execução (servidores de desenvolvimento, testes que sobem um servidor, proxies locais); as portas de web, SSH e DNS da internet e as ferramentas do próprio SynaBun continuam funcionando.",
4579
+ "restart": "Reinicie o SynaBun para usar isto: o servidor em execução foi iniciado antes de isto existir. Até lá os workers não são contidos.",
4580
+ "failed": "Esta opção não iniciou ({reason}). Reinicie o SynaBun; se acontecer de novo, o log do servidor mostra o motivo.",
4581
+ "failedNoReason": "Esta opção não iniciou. Reinicie o SynaBun; se acontecer de novo, o log do servidor mostra o motivo.",
4582
+ "unreadable": "A opção não pôde ser lida ({reason}).",
4583
+ "unreadableNoReason": "A opção não pôde ser lida.",
4584
+ "save": {
4585
+ "failed": "\"{mode}\" não foi salvo: {reason}.",
4586
+ "noAnswer": "\"{mode}\" não foi salvo: o SynaBun não respondeu. O servidor está em execução?",
4587
+ "oldServer": "\"{mode}\" não foi salvo: o servidor em execução foi iniciado antes de esta opção existir. Reinicie o SynaBun."
4588
+ }
4589
+ },
4318
4590
  "uc": {
4319
4591
  "restart": "Reinicie o SynaBun para usar estas opções: o servidor em execução foi iniciado antes de elas existirem.",
4320
4592
  "failed": "O Assistente está funcionando sem estas opções: esta parte do SynaBun não iniciou ({reason}). Reinicie o SynaBun; se acontecer de novo, o log do servidor mostra o motivo.",
@@ -4387,6 +4659,52 @@
4387
4659
  "forbidden": "Não foi possível salvar: esta janela não tem permissão para alterar ajustes.",
4388
4660
  "noAnswer": "Não foi possível salvar: o servidor não respondeu. A chave voltou para onde estava."
4389
4661
  }
4662
+ },
4663
+ "claudeHooks": {
4664
+ "on": "Ligados em {path}. Toda sessão do Claude Code que você mesmo abre os executa, seja num terminal, no VS Code ou no app desktop.",
4665
+ "partial": "Ligados em {on} de {total} momentos; os outros estão desligados em Hooks para o Claude Code fora do Assistente, abaixo.",
4666
+ "off": "Desligados. As sessões do Claude Code que você mesmo abre rodam sem a memória do SynaBun, e o cérebro Claude do Assistente também.",
4667
+ "applies": "O Claude Code lê os hooks quando a sessão começa: uma sessão já aberta mantém os que tinha ao começar.",
4668
+ "blocked": {
4669
+ "user": "A opção disableAllHooks do próprio Claude Code está ligada em {path}, então nenhum hook roda, nem os do SynaBun. Ligar isto desliga essa opção.",
4670
+ "managed": {
4671
+ "disableAll": "As configurações gerenciadas da sua organização desligam todos os hooks do Claude Code ({path}). O SynaBun não pode mudar isso.",
4672
+ "managedOnly": "As configurações gerenciadas da sua organização só executam os próprios hooks ({path}), então os do SynaBun não rodam. O SynaBun não pode mudar isso."
4673
+ }
4674
+ },
4675
+ "repair": {
4676
+ "stale": "{count} usam um comando antigo, que um Claude Code aberto pelo Dock, pelo Finder ou por um app desktop não consegue executar.",
4677
+ "duplicates": "{count} estão listados duas vezes e por isso rodam duas vezes.",
4678
+ "projects": "{names} têm uma cópia diferente, então as sessões ali executam cada hook duas vezes.",
4679
+ "node": "Um Claude Code aberto pelo Dock, pelo Finder ou por um app desktop não encontraria o Node.js para executá-los.",
4680
+ "action": "Reparar",
4681
+ "title": "Gravar os hooks atuais de novo em todos os arquivos de configuração"
4682
+ },
4683
+ "projectsOff": "A opção disableAllHooks do Claude Code está ligada em {names}: nenhum hook roda ali.",
4684
+ "projectsStillOn": "Ainda ligados em {names}, nas configurações do próprio projeto. Ligue e desligue isto de novo para removê-los.",
4685
+ "restart": "Reinicie o SynaBun para ver e mudar isto: o servidor em execução foi iniciado antes desta versão e não sabe dizer se os hooks estão ligados.",
4686
+ "refused": "Este navegador não pode ver nem mudar as configurações do Claude Code do dono: é o navegador de automação do SynaBun. Abra as Configurações no seu próprio navegador ou no app do SynaBun.",
4687
+ "forbidden": "Só o dono do SynaBun pode ver e mudar os hooks do Claude Code.",
4688
+ "unreadable": "Não foi possível ler o estado dos hooks ({reason}).",
4689
+ "unreadableNoReason": "Não foi possível ler o estado dos hooks.",
4690
+ "settingsUnreadable": "O SynaBun não consegue ler {path} ({reason}), então não sabe dizer se os hooks estão ligados. Corrija ou remova esse arquivo e abra as Configurações de novo.",
4691
+ "save": {
4692
+ "failed": {
4693
+ "on": "Os hooks não foram ligados: {reason}.",
4694
+ "off": "Os hooks não foram desligados: {reason}.",
4695
+ "repair": "Os hooks não foram reparados: {reason}."
4696
+ },
4697
+ "noAnswer": {
4698
+ "on": "Os hooks não foram ligados: o SynaBun não respondeu. O servidor está rodando?",
4699
+ "off": "Os hooks não foram desligados: o SynaBun não respondeu. O servidor está rodando?",
4700
+ "repair": "Os hooks não foram reparados: o SynaBun não respondeu. O servidor está rodando?"
4701
+ },
4702
+ "refused": {
4703
+ "on": "Os hooks não foram ligados: este navegador não pode mudar as configurações do dono.",
4704
+ "off": "Os hooks não foram desligados: este navegador não pode mudar as configurações do dono.",
4705
+ "repair": "Os hooks não foram reparados: este navegador não pode mudar as configurações do dono."
4706
+ }
4707
+ }
4390
4708
  }
4391
4709
  },
4392
4710
  "discord": {
@@ -5354,7 +5672,7 @@
5354
5672
  "6": "Preso em “Reconectando”? Confira a conexão à internet deste computador e pressione Reconectar agora.",
5355
5673
  "7": "Áudios não transcritos? Este computador precisa do whisper.cpp, do modelo de fala dele e do FFmpeg, que você instala; a linha abaixo de “Transcrever áudios” diz o que falta."
5356
5674
  },
5357
- "browserTools": "É diferente das ferramentas de navegador do WhatsApp. O perfil MCP whatsapp permite que agentes leiam o WhatsApp Web no navegador do SynaBun; esta aba é para você conversar com o SynaBun pelo celular. Não compartilham sessão.",
5675
+ "browserTools": "É diferente das ferramentas de navegador do WhatsApp. O grupo de ferramentas browser_whatsapp permite que agentes leiam o WhatsApp Web no navegador do SynaBun; esta aba é para você conversar com o SynaBun pelo celular. Não compartilham sessão.",
5358
5676
  "uninstall": "Desinstalar o SynaBun não desvincula o WhatsApp. Use Desvincular ou Remover aqui primeiro ou desconecte o SynaBun em WhatsApp → Configurações → Dispositivos conectados."
5359
5677
  },
5360
5678
  "stage": {
@@ -5654,14 +5972,15 @@
5654
5972
  "ai_decisions": "jev, typesafe, avaliações, julgamentos, chave de api, api key, custo, tokens, registro",
5655
5973
  "projects": "área de trabalho, workspace, pasta, repositório, repo, caminho, cache, espaço em disco",
5656
5974
  "browser": "chrome, chromium, perfil, cookies, user agent, proxy, viewport, headless",
5657
- "connected_tools": "mcp, servidor, plugin, ferramentas, morelogin, perfil, extensão",
5975
+ "connected_tools": "mcp, servidor, plugin, ferramentas, ferramentas padrão, morelogin, extensão",
5658
5976
  "tool_access": "skills, comandos de barra, permissões, permitir, negar, aprovar",
5659
5977
  "automations": "assistente, conhecimento, hooks, saudação, túnel, tunnel, remoto, cloudflare, redes sociais, youtube",
5660
5978
  "messages": "whatsapp, discord, celular, telefone, chat, bot, mensagens",
5661
5979
  "notifications": "alertas, som, volume, banner, toast, silenciar, notificação do sistema",
5662
5980
  "appearance": "tema, modo escuro, dark mode, skin, cor, fonte, tamanho do texto, idioma, ícones, zoom, visual",
5663
5981
  "code_editor": "editor, código, fonte, tamanho do texto, quebra de linha, minimapa, espaços em branco, indentação, tabulações, autocompletar, completar, sugestões, copilot, texto fantasma, inline, ia, modelo, ollama, arquivo",
5664
- "about": "versão, GitHub, licença, dependências, Node, Electron, Chromium, sistema, atualização, créditos, copyright, notas de versão, changelog"
5982
+ "about": "versão, GitHub, licença, dependências, Node, Electron, Chromium, sistema, atualização, créditos, copyright, notas de versão, changelog",
5983
+ "app": "atualizações, atualização automática, inicialização, iniciar ao entrar, iniciar com o sistema, itens de início, boot, autostart, segundo plano, bandeja, barra de menus, fechar janela, sair, aceleração de hardware, GPU, pasta de dados, logs, reiniciar, versão"
5665
5984
  },
5666
5985
  "section": {
5667
5986
  "ai_connections": {
@@ -5709,15 +6028,15 @@
5709
6028
  "advanced_browser_behavior": "proxy, tempo limite, timeout, headless, permissões, localização, rede, gravação, vídeo, segurança, downloads, certificado"
5710
6029
  },
5711
6030
  "connected_tools": {
5712
- "tool_profiles": "mcp, grupos de ferramentas, core, standard, contexto",
5713
6031
  "added_servers": "servidor mcp, adicionar servidor, github, plugin, stdio, http, variáveis de ambiente, oauth, cabeçalhos",
5714
6032
  "morelogin_connection": "porta, antidetect, conectar, api local",
5715
6033
  "morelogin_profiles": "perfil de navegador, criar perfil, perfil padrão",
5716
6034
  "morelogin_credentials": "api id, chave de api, api key, segredo, requisições assinadas, token",
5717
- "morelogin_tool_server": "mcp, adicionar aos assistentes"
6035
+ "morelogin_tool_server": "mcp, adicionar aos assistentes",
6036
+ "default_tools": "mcp, grupos de ferramentas, ferramentas padrão, contexto"
5718
6037
  },
5719
6038
  "tool_access": {
5720
- "skills": "comandos de barra, slash commands, instalar, leonardo, synabun",
6039
+ "skills": "comandos de barra, slash commands, instalar, synabun",
5721
6040
  "tool_permissions": "permitir, aprovar, aprovação automática, perguntar"
5722
6041
  },
5723
6042
  "automations": {
@@ -5767,6 +6086,12 @@
5767
6086
  "links": "GitHub, repositório, versões publicadas, changelog, problema, relatar bug, site, documentação, npm, licença, Discord, comunidade",
5768
6087
  "system": "versão, Node, Node.js, Electron, Chromium, SQLite, sistema operacional, SO, macOS, Windows, Linux, arquitetura, pasta de dados, porta, instalação, diagnóstico",
5769
6088
  "dependencies": "pacotes, bibliotecas, npm, licenças, código aberto, terceiros, versões, node_modules"
6089
+ },
6090
+ "app": {
6091
+ "updates": "atualizar, atualização automática, automático, procurar, versão, upgrade, lançamento, baixar, instalar, selo",
6092
+ "startup": "iniciar ao entrar, inicialização, boot, itens de início, autostart, abrir, segundo plano, oculto, bandeja, minimizado, LaunchAgent, systemd",
6093
+ "window": "fechar, bandeja, barra de menus, sair, continuar em execução, aceleração de hardware, GPU, gráficos, piscar, janela em branco",
6094
+ "maintenance": "pasta de dados, logs, arquivos de log, reiniciar, solução de problemas, diagnóstico, pasta, Finder, Explorer"
5770
6095
  }
5771
6096
  },
5772
6097
  "control": {
@@ -5953,6 +6278,70 @@
5953
6278
  "builtWith": "Feito com software de código aberto"
5954
6279
  },
5955
6280
  "afterRestart": "Aparece depois que o SynaBun reiniciar."
6281
+ },
6282
+ "app": {
6283
+ "version": "SynaBun {version}",
6284
+ "update": {
6285
+ "checking": "Procurando atualizações…",
6286
+ "upToDate": "Atualizado",
6287
+ "available": "A versão {version} está disponível",
6288
+ "downloading": "Baixando a versão {version} ({percent}%)",
6289
+ "ready": "A versão {version} está pronta para instalar",
6290
+ "installing": "Instalando a versão {version}",
6291
+ "failed": "A última verificação falhou",
6292
+ "notChecked": "Ainda não verificado",
6293
+ "unsupported": "Esta cópia não se atualiza sozinha",
6294
+ "checkedAt": "verificado às {time}",
6295
+ "autoHelpDesktop": "Baixa as novas versões e as instala quando o SynaBun está ocioso, depois de um aviso de um minuto. Desligado: o SynaBun continua verificando e avisa, e você instala com um clique.",
6296
+ "autoHelpServer": "Procura novas versões quando o SynaBun inicia e a cada meia hora, e mostra o selo de atualização. Desligado: só procura quando você pedir. A instalação sempre pergunta antes."
6297
+ },
6298
+ "startup": {
6299
+ "helpDesktop": "Abre o SynaBun quando você entra na sua conta, para que o servidor esteja pronto para suas ferramentas de IA.",
6300
+ "helpServer": "Inicia o servidor do SynaBun em segundo plano quando você entra na sua conta, sem janela nem terminal.",
6301
+ "hiddenNeedsLogin": "Vale quando o SynaBun inicia ao entrar.",
6302
+ "requiresApproval": "O macOS espera que você permita o SynaBun em Ajustes do Sistema > Geral > Itens de Início.",
6303
+ "disabledInSystem": {
6304
+ "darwin": "Desligado em Ajustes do Sistema > Geral > Itens de Início.",
6305
+ "win32": "Desligado em Configurações do Windows > Aplicativos > Inicialização.",
6306
+ "linux": "Desligado nos aplicativos de inicialização do seu ambiente."
6307
+ },
6308
+ "openSettings": {
6309
+ "darwin": "Abrir Itens de Início",
6310
+ "win32": "Abrir Inicialização"
6311
+ },
6312
+ "reason": {
6313
+ "unpackaged": "Só uma cópia instalada do SynaBun pode iniciar ao entrar.",
6314
+ "move-to-applications": "Mova o SynaBun para a pasta Aplicativos antes.",
6315
+ "no-appimage": "Inicie o SynaBun pelo arquivo AppImage para usar isto.",
6316
+ "not-here": "Indisponível em uma execução de teste ou em uma pasta de dados temporária.",
6317
+ "unsupported": "Indisponível neste sistema.",
6318
+ "desktop": "O app SynaBun cuida disto. Atualize o app para mudar aqui."
6319
+ },
6320
+ "owner": "O app SynaBun abre ao entrar com esta pasta de dados. Desligue no app antes.",
6321
+ "replaced": "A instalação npm não inicia mais ao entrar: agora quem inicia é este app.",
6322
+ "error": {
6323
+ "refused": "O sistema não aceitou a mudança.",
6324
+ "write-failed": "O SynaBun não conseguiu gravar a entrada de inicialização.",
6325
+ "no-wscript": "O Windows Script Host (wscript.exe) não está disponível, então o SynaBun não consegue iniciar sem janela.",
6326
+ "bad-path": "O SynaBun não consegue iniciar ao entrar a partir de uma pasta cujo nome tem %.",
6327
+ "desktop-app": "O app SynaBun abre ao entrar com esta pasta de dados. Desligue no app antes.",
6328
+ "npm-entry": "Não foi possível remover a inicialização da instalação npm. Desligue lá e tente de novo.",
6329
+ "save-failed": "O SynaBun não conseguiu salvar esta configuração.",
6330
+ "network": "O SynaBun não respondeu. Tente de novo."
6331
+ }
6332
+ },
6333
+ "window": {
6334
+ "desktopOnly": "Só no app SynaBun para desktop.",
6335
+ "macDock": "No macOS, o SynaBun fica no Dock quando a janela fecha. Saia pelo menu.",
6336
+ "noTray": "Este ambiente não mostra o ícone na bandeja: abra o SynaBun de novo para mostrar a janela.",
6337
+ "restartNeeded": "Vale depois que o SynaBun reiniciar."
6338
+ },
6339
+ "maintenance": {
6340
+ "openFailed": "Não foi possível abrir a pasta."
6341
+ },
6342
+ "remote": "Abra o SynaBun no computador em que ele roda para mudar isto.",
6343
+ "serverOld": "Estes controles chegam com um reinício do servidor do SynaBun.",
6344
+ "saveFailed": "Não foi possível salvar a configuração."
5956
6345
  }
5957
6346
  }
5958
6347
  },
@@ -6117,6 +6506,2243 @@
6117
6506
  "filenameRequired": "O nome do arquivo é obrigatório"
6118
6507
  }
6119
6508
  },
6509
+ "skillsStudio": {
6510
+ "errors": {
6511
+ "invalidProfile": "Escolha um perfil de exportação compatível e tente novamente.",
6512
+ "exportTransformFailed": "A exportação não conseguiu preservar os arquivos desta skill. Revise o perfil de exportação e tente novamente.",
6513
+ "revisionDamaged": "Esta versão está danificada ou tem arquivos ausentes. Restaure-a de um backup confiável; as outras versões continuam disponíveis.",
6514
+ "workerBrowser": "O navegador de automação do SynaBun não pode agir como proprietário. Abra o aplicativo ou seu próprio navegador para executar esta ação.",
6515
+ "owner": "Esta ação exige o proprietário no aplicativo.",
6516
+ "pageSession": "Reabra o Skills Studio para renovar a sessão da página.",
6517
+ "conflict": "Os dados mudaram. Recarregue e tente novamente.",
6518
+ "missing": "Este item não está mais disponível. Recarregue a biblioteca.",
6519
+ "scanIncomplete": "A cobertura da verificação está incompleta. Revise os arquivos ignorados.",
6520
+ "scanBlocked": "A verificação bloqueou esta ação. Revise os resultados.",
6521
+ "exportBlocked": "A validação do pacote bloqueou a exportação. Revise os metadados e recursos.",
6522
+ "catalogIncomplete": "O catálogo está incompleto. Atualize-o e tente novamente.",
6523
+ "sourceChanged": "A origem mudou. Atualize-a e revise a nova versão.",
6524
+ "unsafeSource": "A origem contém caminhos inseguros ou entradas não suportadas. Revise-a antes de preparar.",
6525
+ "exportReviewRequired": "Revise e confirme esta exportação exata antes de baixar.",
6526
+ "invalidName": "O nome não atende aos requisitos deste destino. Renomeie-o ou escolha um formato de snapshot.",
6527
+ "invalidFormat": "Escolha um formato de exportação suportado.",
6528
+ "exportIncompatible": "Este destino não preserva as configurações de invocação da skill. Escolha outro perfil.",
6529
+ "invalidFrontmatter": "Corrija o frontmatter antes de exportar.",
6530
+ "exportLint": "A validação do pacote bloqueou a exportação: {detail}",
6531
+ "sourceDisabled": "Ative esta fonte no Discover primeiro.",
6532
+ "sourceUnavailable": "A fonte está indisponível. Tente novamente mais tarde.",
6533
+ "request": "Não foi possível concluir a solicitação ({code})."
6534
+ },
6535
+ "scan": {
6536
+ "reasons": {
6537
+ "assetInvalid": "A imagem ou fonte está malformada ou contém bytes após seu fim; ela não pode ser tratada como passiva.",
6538
+ "assetScript": "A imagem, fonte ou SVG contém marcadores de script ou evidência forte das regras de texto; não pode ser tratada como passiva.",
6539
+ "assetBudget": "A descompressão do recurso excedeu o limite por arquivo, por skill ou de taxa de compressão; a cobertura está incompleta.",
6540
+ "assetTooLarge": "O arquivo é grande demais para ser inspecionado por completo.",
6541
+ "shellLimit": "A análise de shell atingiu seu limite; a cobertura está incompleta."
6542
+ },
6543
+ "assetCommand": "Um recurso contém uma linha de texto semelhante a comando ou está marcado como executável; revise seu uso.",
6544
+ "downloadRun": "Esta skill menciona ferramentas de download ou decodificação ({download}) e execução ({run}); revise os dois locais.",
6545
+ "assetExecution": "Menciona uma imagem, fonte ou mídia junto a um programa que poderia executá-la, ou a torna executável.",
6546
+ "hiddenTotal": "{count} caracteres ocultos, primeiros {listed} listados.",
6547
+ "status": {
6548
+ "clean": "Sem achados",
6549
+ "findings": "Com achados",
6550
+ "incomplete": "Cobertura incompleta",
6551
+ "error": "Falha na verificação",
6552
+ "notScanned": "Não verificada"
6553
+ },
6554
+ "severity": {
6555
+ "critical": "Crítica",
6556
+ "high": "Alta",
6557
+ "medium": "Média",
6558
+ "low": "Baixa",
6559
+ "info": "Informativa"
6560
+ },
6561
+ "summary": "{status} · {count} achados{detail}",
6562
+ "severityCount": "{severity}: {count}",
6563
+ "loading": "Carregando resultados da verificação…",
6564
+ "title": "Verificação da versão {id}",
6565
+ "passed": "aprovada",
6566
+ "notPassed": "não aprovada"
6567
+ },
6568
+ "operations": {
6569
+ "licenses": {
6570
+ "perSkill": "Termos por skill; revise os arquivos LICENSE",
6571
+ "perPublisher": "Termos por publicador",
6572
+ "upstream": "Termos do repositório de origem",
6573
+ "mitZero": "MIT-0 para o conteúdo das skills publicadas",
6574
+ "apacheClient": "Cliente Apache-2.0",
6575
+ "mitCore": "Núcleo MIT",
6576
+ "apacheHosted": "Cliente Apache-2.0; termos da hospedagem separados",
6577
+ "mitHosted": "CLI MIT; termos da hospedagem separados"
6578
+ },
6579
+ "deprecated": "descontinuado na origem",
6580
+ "collection": "Coleta de uso",
6581
+ "scheduleTitle": "Verificações agendadas",
6582
+ "packageNoLosses": "Este formato não remove campos nem arquivos.",
6583
+ "packageSourceScan": "Verificação da versão de origem: {passed} · {status}",
6584
+ "ready": "Pronto",
6585
+ "packageName_preserved": "Nome no arquivo: {name} (nome da biblioteca preservado).",
6586
+ "packageName_target": "Nome no arquivo: {name} (regras de nome do destino).",
6587
+ "protected": "Proteger contra arquivamento",
6588
+ "protectedHelp": "Proteja skills fixadas, raras, críticas ou de processos. Contagens de uso nunca causam exclusão automática.",
6589
+ "discover": "Descobrir",
6590
+ "health": "Saúde e uso",
6591
+ "loading": "Carregando…",
6592
+ "restart": "Reinicie o SynaBun para usar este recurso.",
6593
+ "discoverHelp": "Explore pastas fixadas na origem. A importação prepara, verifica e envia para revisão; a instalação ainda exige sua aprovação.",
6594
+ "healthHelp": "Confira os bytes aprovados, regras de descoberta, disponibilidade e regras atuais de segurança. As verificações nunca reparam ou instalam skills.",
6595
+ "failed": "Não foi possível concluir: {error}",
6596
+ "clear": "Excluir histórico de uso",
6597
+ "clearHelp": "Exclui as evidências locais de uso. Skills instaladas e registros de avaliações continuam disponíveis.",
6598
+ "catalogLimit": "O catálogo deve ter menos de 1 MB.",
6599
+ "disclosure": "As fontes começam desativadas. Ativar uma fonte permite solicitações explícitas de atualização e importação para api.github.com, com nomes de repositórios e IDs de commits. O conteúdo local das skills e o uso nunca saem deste computador. Selos de registros não são aprovação.",
6600
+ "enabled": "Ativado",
6601
+ "disabled": "Desativado",
6602
+ "enableSource": "Ativar fonte",
6603
+ "disableSource": "Desativar fonte",
6604
+ "refresh": "Atualizar catálogo",
6605
+ "importCatalog": "Importar catálogo JSON",
6606
+ "catalogHelp": "A API do registro está indisponível. Importe um array JSON com repo, subpath, commit completo e license para cada origem no GitHub. As declarações de autoria e licença exigem revisão.",
6607
+ "search": "Buscar skills no cache",
6608
+ "cached": "Skills no cache: {count}",
6609
+ "stage": "Preparar para revisão",
6610
+ "usage": "Uso local",
6611
+ "collect": "Registrar evidências mínimas de uso",
6612
+ "retention": "Retenção em dias (1–365)",
6613
+ "privacy": "Até 10.000 eventos. Sem prompts, comandos brutos, saídas ou mineração de conversas. Custos desconhecidos das skills permanecem desconhecidos.",
6614
+ "schedule": "Ativar verificações periódicas",
6615
+ "cadence": "Intervalo em horas (1–168)",
6616
+ "lastCheck": "Última verificação: {at}",
6617
+ "never": "Não verificado",
6618
+ "check": "Verificar agora",
6619
+ "save": "Salvar configurações",
6620
+ "coverage": "O que cada runtime expõe",
6621
+ "coverage_claude": "Claude Code: solicitação de Skill e resultado bem-sucedido da ferramenta em tarefas despachadas pelo SynaBun. A descoberta tem contagem separada. Outros terminais não são observados.",
6622
+ "coverage_codex": "Codex: sem evento nativo de invocação de skill. Uma leitura exata e bem-sucedida do arquivo é um carregamento inferido; nunca conta como invocação.",
6623
+ "coverage_opencode": "OpenCode: chamadas concluídas da ferramenta skill em tarefas despachadas pelo SynaBun. Um resultado de tarefa não comprova a qualidade da skill.",
6624
+ "counts": "Descobertas: {discovered} · Solicitadas: {requested} · Invocadas: {invoked} · Carregamentos inferidos: {loaded} · Falhas: {failed}",
6625
+ "noUsage": "Sem uso observado no período de retenção. Isso não significa que a skill não foi usada.",
6626
+ "installations": "Skills instaladas",
6627
+ "state_attention": "Precisa de atenção",
6628
+ "state_unverified_runtime": "Arquivos verificados; execução no runtime não verificada",
6629
+ "state_checked": "Verificações concluídas; execução não verificada",
6630
+ "state_error": "Falha na verificação",
6631
+ "issue_missing": "A pasta instalada está ausente",
6632
+ "issue_changed": "Os bytes instalados mudaram",
6633
+ "issue_drift": "Alteração na instalação",
6634
+ "issue_not_discoverable": "As regras de descoberta do runtime não a encontram",
6635
+ "issue_disabled": "Desativada nas configurações do runtime",
6636
+ "issue_not_listed": "O runtime não a listou",
6637
+ "issue_scan_review": "Os achados de segurança precisam de revisão",
6638
+ "issue_scan_blocked": "A verificação de segurança bloqueia o uso destes bytes",
6639
+ "issue_check_error": "Não foi possível concluir todas as verificações",
6640
+ "noChecks": "Nenhuma skill instalada foi verificada ainda.",
6641
+ "proposals": "Sugestões de manutenção",
6642
+ "proposalHelp": "Falhas observadas repetidas podem sugerir investigação. Alterações, testes com modelos e arquivamento são sempre explícitos; o uso sozinho nunca comprova qualidade.",
6643
+ "proposalFailures": "Investigue {count} falhas de ferramentas na aba Testar.",
6644
+ "scanners": "Verificadores opcionais",
6645
+ "scannerHelp": "A verificação local sempre é executada. Mecanismos adicionais exigem um adaptador fixado e isolado; mecanismos hospedados também precisam de retenção e termos revisados. Mecanismos indisponíveis e ignorados nunca contam como aprovados.",
6646
+ "unavailable": "Indisponível; nenhum adaptador verificado configurado",
6647
+ "packageTitle": "Revisar exportação",
6648
+ "packageHelp": "Revisão de origem: {revision}. Digest da exportação: {digest}. Arquivos: {count}.",
6649
+ "packageLosses": "Campos sem suporte removidos desta exportação: {fields}. O comportamento deles não é preservado.",
6650
+ "packageLicense": "Licença: {license}. Confira os direitos de redistribuição antes de compartilhar.",
6651
+ "unknown": "Desconhecida",
6652
+ "download": "Baixar exportação verificada",
6653
+ "formats": {
6654
+ "bundle": "Pacote SynaBun",
6655
+ "skill": "Arquivo .skill",
6656
+ "portable": "ZIP de pasta Agent Skills",
6657
+ "claude-upload": "ZIP para upload no Claude",
6658
+ "claude-plugin": "Pacote de plugin Claude",
6659
+ "claude-api": "Snapshot da API Claude",
6660
+ "github": "ZIP para distribuição no GitHub"
6661
+ }
6662
+ },
6663
+ "guestDisabled": "O Estúdio de Skills está desativado para convidados pelo host.",
6664
+ "title": "Estúdio de Skills",
6665
+ "shell": {
6666
+ "collapseRail": "Mostrar ou ocultar a barra lateral",
6667
+ "dock": "Encaixar ao lado dos painéis laterais",
6668
+ "dockHelp": "Encaixar: ocupa a área de trabalho ao lado dos painéis laterais, para uma conversa continuar usável junto ao Estúdio",
6669
+ "dim": "Escurecer o fundo",
6670
+ "dimHelp": "Escurecer o fundo: a página atrás espera até o Estúdio fechar",
6671
+ "close": "Fechar o Estúdio de Skills",
6672
+ "docked": "Encaixado ao lado dos painéis laterais.",
6673
+ "undocked": "Janela flutuante.",
6674
+ "dimmed": "Fundo escurecido.",
6675
+ "notDimmed": "Fundo sem escurecer.",
6676
+ "loading": "Lendo as skills…",
6677
+ "olderServer": "Este servidor é mais antigo que esta página: reinicie o SynaBun.",
6678
+ "olderServerTitle": "Reinicie o SynaBun para usar este Estúdio de Skills",
6679
+ "olderServerHelp": "A página foi atualizada, mas o servidor ainda é o antigo, que não tem o Serviço de Skills. Reinicie o SynaBun (Apps → Reiniciar servidor) e abra o Estúdio de Skills de novo.",
6680
+ "retry": "Tentar de novo"
6681
+ },
6682
+ "rail": {
6683
+ "library": "Biblioteca",
6684
+ "review": "Revisão",
6685
+ "create": "Criar",
6686
+ "waiting": "esperando por você",
6687
+ "viewsTitle": "Visões",
6688
+ "projectsTitle": "Projetos",
6689
+ "runtimesTitle": "Assistentes",
6690
+ "views": {
6691
+ "attention": "Precisa de atenção",
6692
+ "mine": "Minhas",
6693
+ "synabun": "Do SynaBun",
6694
+ "plugins": "Plugins",
6695
+ "account": "Conta do Claude",
6696
+ "drafts": "Rascunhos",
6697
+ "archived": "Arquivadas"
6698
+ },
6699
+ "runtimeState": {
6700
+ "ready": "pronto",
6701
+ "bridge": "formato antigo — atualizar",
6702
+ "empty": "nenhuma skill ainda",
6703
+ "unknown": "não encontrado"
6704
+ },
6705
+ "runtimeFix": "{runtime}: as skills chegam a ele por arquivos de ponte antigos. Abra Configurações → Skills → Pastas de skills para movê-las para pastas de skill.",
6706
+ "runtimeFixFailed": "Não foi possível abrir as Configurações. Abra Configurações → Skills → Pastas de skills você mesmo."
6707
+ },
6708
+ "runtime": {
6709
+ "claude": "Claude Code",
6710
+ "codex": "Codex",
6711
+ "opencode": "OpenCode",
6712
+ "agents": "Pasta compartilhada"
6713
+ },
6714
+ "runtimeState": {
6715
+ "installed": "instalada",
6716
+ "outdated": "uma versão mais antiga está instalada",
6717
+ "present": "em uma pasta que ele lê",
6718
+ "bridge": "alcançada por uma ponte antiga",
6719
+ "none": "não instalada"
6720
+ },
6721
+ "kind": {
6722
+ "skill": "Skill",
6723
+ "agent": "Agente",
6724
+ "command": "Comando",
6725
+ "commandLegacy": "Comando · legado"
6726
+ },
6727
+ "source": {
6728
+ "mine": "Todos os projetos",
6729
+ "project": "Projeto",
6730
+ "synabun": "Do SynaBun",
6731
+ "plugin": "Plugin",
6732
+ "account": "Conta do Claude",
6733
+ "system": "Do próprio assistente",
6734
+ "shared": "Compartilhada (~/.agents)",
6735
+ "library": "Biblioteca",
6736
+ "legacyBridge": "Ponte antiga",
6737
+ "pluginCopies": {
6738
+ "one": "{plugin} · {count} cópia em cache",
6739
+ "other": "{plugin} · {count} cópias em cache"
6740
+ },
6741
+ "accounts": {
6742
+ "one": "{count} conta",
6743
+ "other": "{count} contas"
6744
+ },
6745
+ "libraryVersions": {
6746
+ "one": "{count} versão",
6747
+ "other": "{count} versões"
6748
+ },
6749
+ "libraryDraft": "rascunho, sem versão ainda",
6750
+ "installedCopies": {
6751
+ "one": "{count} cópia instalada",
6752
+ "other": "{count} cópias instaladas"
6753
+ }
6754
+ },
6755
+ "health": {
6756
+ "not-text": "Não é texto UTF-8",
6757
+ "invalid": {
6758
+ "one": "{count} problema",
6759
+ "other": "{count} problemas"
6760
+ },
6761
+ "warnings": {
6762
+ "one": "{count} aviso",
6763
+ "other": "{count} avisos"
6764
+ },
6765
+ "update": "Nova versão",
6766
+ "shadowed": "Encoberta",
6767
+ "shadowedWhy": "{runtime} usa outra skill com este nome no lugar desta.",
6768
+ "twice": "Duplicada",
6769
+ "twiceWhy": "{runtime} lista duas skills com este nome: um modelo pode escolher qualquer uma.",
6770
+ "sameDescription": "Mesma descrição",
6771
+ "sameDescriptionWhy": "A mesma descrição de {names}: um modelo não consegue diferenciá-las.",
6772
+ "bridge": "Ponte antiga",
6773
+ "review": "Em revisão",
6774
+ "draft": "Rascunho",
6775
+ "readonly": "Somente leitura",
6776
+ "ok": "Sem problemas"
6777
+ },
6778
+ "library": {
6779
+ "title": "Biblioteca",
6780
+ "searchLabel": "Buscar skills, agentes e comandos",
6781
+ "searchPlaceholder": "Buscar skills, agentes, comandos…",
6782
+ "new": "Nova",
6783
+ "filter": {
6784
+ "kind": "Tipo",
6785
+ "source": "Origem",
6786
+ "runtime": "Assistente",
6787
+ "health": "Saúde",
6788
+ "kindAll": "Todos os tipos",
6789
+ "sourceAll": "Todas as origens",
6790
+ "runtimeAll": "Todos os assistentes",
6791
+ "healthAll": "Qualquer saúde"
6792
+ },
6793
+ "healthFilter": {
6794
+ "attention": "Precisa de atenção",
6795
+ "invalid": "Com problemas",
6796
+ "warnings": "Com avisos",
6797
+ "update": "Atualização disponível",
6798
+ "duplicates": "Duplicadas e encobertas",
6799
+ "drafts": "Rascunhos",
6800
+ "readonly": "Somente leitura",
6801
+ "ok": "Nenhum problema encontrado"
6802
+ },
6803
+ "sort": {
6804
+ "label": "Ordenar",
6805
+ "attention": "Precisa de atenção primeiro",
6806
+ "name": "Nome",
6807
+ "updated": "Alteradas recentemente",
6808
+ "kind": "Tipo",
6809
+ "source": "Origem"
6810
+ },
6811
+ "select": "Selecionar {name}",
6812
+ "selectAll": "Selecionar todas as linhas mostradas",
6813
+ "noDescription": "Sem descrição",
6814
+ "unknownDate": "Desconhecida",
6815
+ "unknownDateRestart": "Ainda desconhecida: reinicie o SynaBun para ver quando mudou",
6816
+ "updatedRestart": "Reinicie o SynaBun para ver quando cada uma mudou pela última vez.",
6817
+ "caption": "Skills, agentes e comandos",
6818
+ "col": {
6819
+ "name": "Nome",
6820
+ "kind": "Tipo",
6821
+ "source": "Origem",
6822
+ "health": "Saúde",
6823
+ "runtimes": "Assistentes",
6824
+ "updated": "Atualizada"
6825
+ },
6826
+ "shown": "{shown} de {total} mostradas",
6827
+ "attentionCount": {
6828
+ "one": "{count} precisa de atenção",
6829
+ "other": "{count} precisam de atenção"
6830
+ },
6831
+ "diagnostics": {
6832
+ "one": "{count} pasta não pôde ser lida",
6833
+ "other": "{count} pastas não puderam ser lidas"
6834
+ },
6835
+ "truncated": "A leitura parou nos seus limites: algumas pastas não foram lidas",
6836
+ "loading": "Lendo cada pasta de assistente…",
6837
+ "loadFailed": "Não foi possível ler as skills",
6838
+ "emptyTitle": "Nenhuma skill ainda",
6839
+ "emptyHelp": "Skills, agentes e comandos do Claude Code, do Codex e do OpenCode aparecem aqui. Crie a primeira ou importe um pacote.",
6840
+ "noMatchTitle": "Nada corresponde a estes filtros",
6841
+ "noMatchHelp": "Limpe os filtros ou busque outras palavras.",
6842
+ "clearFilters": "Limpar filtros",
6843
+ "kept": {
6844
+ "one": "{count} alteração não salva foi guardada de uma sessão anterior ({names}).",
6845
+ "other": "{count} alterações não salvas foram guardadas de uma sessão anterior ({names})."
6846
+ },
6847
+ "keptReopen": "Reabrir",
6848
+ "keptDiscard": "Descartar",
6849
+ "keptMore": {
6850
+ "one": "Mais {count} skill tem alterações guardadas: abra-a pela Biblioteca.",
6851
+ "other": "Mais {count} skills têm alterações guardadas: abra-as pela Biblioteca."
6852
+ },
6853
+ "keptDiscardTitle": "Descartar as alterações guardadas?",
6854
+ "keptDiscardHelp": {
6855
+ "one": "A alteração não salva guardada de uma sessão anterior será perdida. Os arquivos ficam como estão.",
6856
+ "other": "As {count} alterações não salvas guardadas de uma sessão anterior serão perdidas. Os arquivos ficam como estão."
6857
+ },
6858
+ "updatesNotice": {
6859
+ "one": "O SynaBun traz uma versão mais nova de {names}.",
6860
+ "other": "O SynaBun traz versões mais novas de {count} skills: {names}."
6861
+ },
6862
+ "reviewUpdates": "Revisar a atualização",
6863
+ "diagnosticsTitle": "Pastas que não puderam ser lidas",
6864
+ "diagnosticsHelp": "Ficaram fora da Biblioteca, cada uma com o motivo.",
6865
+ "diagRoot": "A própria pasta",
6866
+ "diagReason": {
6867
+ "no-skill-md": "uma pasta sem SKILL.md, então não é uma skill",
6868
+ "unreadable-head": "o SKILL.md dela não pode ser lido",
6869
+ "link": "um link que leva para fora da pasta",
6870
+ "too-deep": "aninhada mais fundo do que o SynaBun lê",
6871
+ "unreadable": "não pode ser lida",
6872
+ "outside-project": "um link para fora do projeto",
6873
+ "not-a-folder": "não é uma pasta"
6874
+ },
6875
+ "bulk": {
6876
+ "region": "Itens selecionados",
6877
+ "selected": {
6878
+ "one": "{count} selecionado",
6879
+ "other": "{count} selecionados"
6880
+ },
6881
+ "adopt": "Adicionar à biblioteca ({count})",
6882
+ "adoptHelp": "Leva estas pastas para a biblioteca do SynaBun, para que tenham versões e sejam publicadas de lá",
6883
+ "export": "Exportar ({count})",
6884
+ "delete": "Excluir… ({count})",
6885
+ "clear": "Limpar seleção",
6886
+ "adoptTitle": {
6887
+ "one": "Adicionar {count} skill à biblioteca?",
6888
+ "other": "Adicionar {count} skills à biblioteca?"
6889
+ },
6890
+ "adoptExplain": "Cada pasta é copiada para a biblioteca do SynaBun como a primeira versão. As pastas ficam onde estão; alterações futuras só chegam a elas quando você publica.",
6891
+ "adoptConfirm": "Adicionar à biblioteca",
6892
+ "adoptDone": {
6893
+ "one": "{count} skill adicionada à biblioteca.",
6894
+ "other": "{count} skills adicionadas à biblioteca."
6895
+ },
6896
+ "adoptPartial": "{done} adicionadas, {failed} não: {first}",
6897
+ "exported": {
6898
+ "one": "{count} exportação iniciada.",
6899
+ "other": "{count} exportações iniciadas."
6900
+ },
6901
+ "deleteType": "Digite {word} para confirmar",
6902
+ "deleteWord": "excluir",
6903
+ "deleteTitle": {
6904
+ "one": "Excluir {count} item?",
6905
+ "other": "Excluir {count} itens?"
6906
+ },
6907
+ "deleteExplain": "Eles são removidos de onde estão. Isso não pode ser desfeito.",
6908
+ "deleteLibraryExplain": "Estas saem da biblioteca do SynaBun: os rascunhos e as versões ficam guardados no arquivo dela, e uma pasta de onde vieram fica como está.",
6909
+ "deleteUnsaved": {
6910
+ "one": "{count} deles tem alterações não salvas, que vão junto.",
6911
+ "other": "{count} deles têm alterações não salvas, que vão junto."
6912
+ },
6913
+ "deleteConfirm": "Excluir",
6914
+ "deleteTypeError": "Digite a palavra para confirmar.",
6915
+ "deletePartial": "{done} excluídos, {failed} não: {first}",
6916
+ "deleted": {
6917
+ "one": "{count} item excluído.",
6918
+ "other": "{count} itens excluídos."
6919
+ }
6920
+ },
6921
+ "install": "Instalar",
6922
+ "installHelp": "Aprovada em Revisão: abra Publicar para instalá-la.",
6923
+ "archivedTitle": "Skills arquivadas",
6924
+ "archivedEmpty": "Nada foi excluído da biblioteca.",
6925
+ "archivedHelp": "Uma skill excluída da biblioteca mantém suas versões. Restaurar a devolve como estava.",
6926
+ "archivedWhen": "excluída {when} por {by}",
6927
+ "archivedVersions": {
6928
+ "one": "{count} versão",
6929
+ "other": "{count} versões"
6930
+ },
6931
+ "restore": "Restaurar",
6932
+ "restored": "{name} está de volta na biblioteca.",
6933
+ "restoreFailed": "Não foi possível restaurar: {error}",
6934
+ "alsoInstall": "Instalar também para {targets}",
6935
+ "alsoInstallHelp": "Um toque: a versão instalada vai para os assistentes que ainda não a têm."
6936
+ },
6937
+ "ws": {
6938
+ "breadcrumb": "Onde você está",
6939
+ "save": "Salvar",
6940
+ "publish": "Publicar…",
6941
+ "more": "Mais ações",
6942
+ "unsaved": "alterações não salvas",
6943
+ "tabs": {
6944
+ "edit": "Editar",
6945
+ "test": "Testar",
6946
+ "versions": "Versões",
6947
+ "publish": "Publicar"
6948
+ },
6949
+ "customize": "Personalizar uma cópia",
6950
+ "adoptNow": "Adicionar à biblioteca",
6951
+ "reviewChanges": "Revisar as mudanças",
6952
+ "update": "Atualizar",
6953
+ "keepMine": "Manter a minha",
6954
+ "saveVersion": "Salvar como versão",
6955
+ "openReview": "Abrir em Revisão",
6956
+ "loadFailed": "Não foi possível abrir isto",
6957
+ "loading": "Abrindo…",
6958
+ "banner": {
6959
+ "guest": "Somente leitura para convidados: só o host altera skills.",
6960
+ "bundled": "Vem com o SynaBun, então é somente leitura aqui: uma atualização do app a substitui. Personalize uma cópia para torná-la sua.",
6961
+ "plugin": "Do plugin {plugin}: somente leitura. O plugin a atualiza.",
6962
+ "account": "Sincronizada da sua conta do Claude: somente leitura aqui.",
6963
+ "system": "Skill do próprio assistente: somente leitura.",
6964
+ "shared": "Na pasta compartilhada ~/.agents/skills, em que o SynaBun só escreve quando você a liga em Configurações → Skills.",
6965
+ "not-writable": "O SynaBun não escreve nesta pasta: somente leitura.",
6966
+ "not-addressable": "Este arquivo está fora das pastas que o SynaBun edita: somente leitura.",
6967
+ "not-text": "O SKILL.md não é texto UTF-8 (UTF-16 ou binário): ele é mostrado, não editado. Salve-o como UTF-8 para editá-lo.",
6968
+ "adopt": "Esta pasta ({path}) ainda não está na biblioteca do SynaBun. O primeiro salvamento a adiciona lá como rascunho; publicar a grava de volta.",
6969
+ "update": "O SynaBun traz uma {name} mais nova do que a cópia instalada.",
6970
+ "draftChanged": {
6971
+ "one": "Rascunho: {count} arquivo mudou desde a última versão. Não é instalado até você publicar.",
6972
+ "other": "Rascunho: {count} arquivos mudaram desde a última versão. Não é instalado até você publicar."
6973
+ },
6974
+ "newDraft": "Uma skill nova: um rascunho na biblioteca, ainda não instalado em lugar nenhum.",
6975
+ "review": {
6976
+ "pending": "Um envio desta skill espera em Revisão.",
6977
+ "changes_requested": "Você pediu mudanças no envio desta skill.",
6978
+ "approved": "Aprovada em Revisão, ainda não instalada.",
6979
+ "partial": "Instalada em parte: alguns destinos falharam.",
6980
+ "publish_failed": "A instalação da versão aprovada falhou."
6981
+ },
6982
+ "alsoInstall": "Instalada para {where}. Instalar também para {targets}?"
6983
+ },
6984
+ "menu": {
6985
+ "export": "Exportar como pacote",
6986
+ "copyPath": "Copiar o caminho da pasta",
6987
+ "close": "Fechar este espaço de trabalho",
6988
+ "delete": "Excluir…",
6989
+ "deleteLibrary": "Excluir da biblioteca…"
6990
+ },
6991
+ "deleteTitle": "Excluir {name}?",
6992
+ "deleteSkill": "A pasta da skill {path} e todos os arquivos nela são removidos. Isso não pode ser desfeito.",
6993
+ "deleteFile": "O arquivo {path} é removido. Isso não pode ser desfeito.",
6994
+ "deleteUnsaved": {
6995
+ "one": "{count} arquivo tem alterações não salvas, e elas vão junto:",
6996
+ "other": "{count} arquivos têm alterações não salvas, e elas vão junto:"
6997
+ },
6998
+ "deleteAndDiscard": "Excluir e descartar",
6999
+ "delete": "Excluir",
7000
+ "libraryDeleteTitle": "Excluir {name} da biblioteca?",
7001
+ "libraryDeleteBody": "Ela sai da biblioteca do SynaBun: o rascunho e as versões deixam de aparecer (ficam guardados no arquivo da biblioteca). Ela não está instalada em lugar nenhum, então nenhum runtime a perde.",
7002
+ "libraryDeleteFolderStays": "A pasta de onde ela veio, {path}, fica como está.",
7003
+ "libraryDeleteReviews": {
7004
+ "one": "A revisão aberta dela é encerrada.",
7005
+ "other": "As {count} revisões abertas dela são encerradas."
7006
+ },
7007
+ "libraryDelete": "Excluir da biblioteca",
7008
+ "libraryDeleteInstalledTitle": "{name} está instalada",
7009
+ "libraryDeleteInstalled": {
7010
+ "one": "Ela está instalada em {count} lugar. Remova essa instalação em Publicar primeiro e depois exclua-a da biblioteca.",
7011
+ "other": "Ela está instalada em {count} lugares. Remova essas instalações em Publicar primeiro e depois exclua-a da biblioteca."
7012
+ },
7013
+ "libraryDeleteOpenPublish": "Abrir Publicar",
7014
+ "libraryDeleteRestart": "Reinicie o SynaBun para excluir skills da biblioteca.",
7015
+ "installFor": "Instalar para {targets}",
7016
+ "alsoInstallFor": "Instalar também para {targets}"
7017
+ },
7018
+ "test": {
7019
+ "runtimeActual": "{actual} (solicitado: {requested})",
7020
+ "title": "Testes",
7021
+ "provider": {
7022
+ "claude-code": "Claude Code",
7023
+ "codex": "Codex",
7024
+ "opencode": "OpenCode"
7025
+ },
7026
+ "unavailable": {
7027
+ "olderTitle": "Os testes precisam reiniciar o SynaBun",
7028
+ "older": "Este servidor foi iniciado antes de existirem avaliações. Reinicie o SynaBun (Apps → Reiniciar servidor) para rodar testes aqui.",
7029
+ "notLibraryTitle": "Os testes rodam em skills da biblioteca",
7030
+ "notLibrary": "Esta skill fica na pasta de um runtime. Adicione-a à biblioteca primeiro: as versões dela são o que um teste roda.",
7031
+ "noRevisionTitle": "Salve uma versão para testar",
7032
+ "noRevision": "Um teste roda uma versão salva da skill. Salve este rascunho como versão primeiro.",
7033
+ "saveVersion": "Ir para Versões",
7034
+ "guestTitle": "Os testes são do dono",
7035
+ "guest": "Rodar testes gasta o orçamento de modelos do dono, por isso não está disponível para convidados."
7036
+ },
7037
+ "noSuite": {
7038
+ "title": "Ainda não há prompts de teste",
7039
+ "body": "Esta versão não tem {path}. Adicione casos de tarefa (um pedido e o que uma boa resposta contém) e casos de acionamento (pedidos que devem e que não devem escolher a skill), ou importe-os de outra ferramenta.",
7040
+ "edit": "Escrever em Editar"
7041
+ },
7042
+ "import": {
7043
+ "button": "Importar prompts de teste…",
7044
+ "help": "Lê o evals.json do skill-creator (expectations), o do guia Agent Skills (assertions) e um conjunto de acionamento (eval_set.json). Duplicados viram um caso; as divisões de treino, validação e reservada são feitas para você.",
7045
+ "ready": "{tasks} casos de tarefa e {triggers} casos de acionamento lidos ({dialects}).",
7046
+ "failed": "Estes arquivos não podem ser importados:",
7047
+ "save": "Salvar como {path} no rascunho",
7048
+ "saved": "{path} salvo no rascunho. Salve uma versão para testá-lo.",
7049
+ "saveFailed": "Não foi possível salvar os prompts de teste: {error}",
7050
+ "tooLarge": "Um arquivo para importar tem no máximo 1 MB."
7051
+ },
7052
+ "codex": {
7053
+ "warning": "O Codex pode ler arquivos neste Mac enquanto testa; use-o só em skills em que você confia.",
7054
+ "ask": "O Codex só roda esta versão depois que você permitir.",
7055
+ "askBoth": "O Codex só roda esta versão, e a anterior com que ela é comparada, depois que você permitir.",
7056
+ "confirm": "Permitir o Codex nesta versão",
7057
+ "confirmed": "O Codex está permitido nesta versão.",
7058
+ "confirmedAt": "O Codex foi permitido nesta versão {when}.",
7059
+ "undo": "Desfazer",
7060
+ "failed": "Não foi possível mudar o Codex nesta versão: {error}",
7061
+ "announceOn": "O Codex está permitido nesta versão.",
7062
+ "announceOff": "O Codex não está mais permitido nesta versão."
7063
+ },
7064
+ "head": {
7065
+ "version": "Versão {id}",
7066
+ "reading": "Lendo os prompts de teste…",
7067
+ "tasks": {
7068
+ "one": "{count} caso de tarefa",
7069
+ "other": "{count} casos de tarefa"
7070
+ },
7071
+ "triggers": {
7072
+ "one": "{count} caso de acionamento",
7073
+ "other": "{count} casos de acionamento"
7074
+ },
7075
+ "polarity": "{positive} devem escolhê-la, {nearMiss} quase-acertos",
7076
+ "held": {
7077
+ "one": "{count} reservado",
7078
+ "other": "{count} reservados"
7079
+ },
7080
+ "safety": "Cada execução trabalha numa pasta só dela, com uma cópia da skill: nada é instalado nos seus runtimes.",
7081
+ "draftChanged": "Seu rascunho tem mudanças que não estão nesta versão. Os testes rodam a versão salva.",
7082
+ "suiteErrors": {
7083
+ "one": "Os prompts de teste têm {count} problema: corrija-o em Editar antes de rodar.",
7084
+ "other": "Os prompts de teste têm {count} problemas: corrija-os em Editar antes de rodar."
7085
+ },
7086
+ "fixInEdit": "Abrir em Editar",
7087
+ "suiteUnread": "Não foi possível ler os prompts de teste: {error}",
7088
+ "safetyHeld": "O {provider} carrega só a skill em teste (nenhuma configuração, hook ou plugin seu) e lê e grava arquivos apenas na pasta da execução.",
7089
+ "safetyShell": "Um caso que pede um shell recebe um sem rede e sem acesso à sua pasta pessoal.",
7090
+ "safetyCodex": "O Codex pode ler arquivos em qualquer lugar deste Mac enquanto testa, e o que ele lê pode chegar à OpenAI: ele só roda versões que você permitir.",
7091
+ "fixtureConfig": "\"{file}\" seria copiado para {name}, que um runtime carrega como configuração ou código próprio: arquivos de teste nunca vão para lá. Deixe-o em evals/files/.",
7092
+ "fixtureAlias": "\"{file}\" tem um nome que outro sistema de arquivos pode ler como o de outro arquivo (como CLAUDE~1, ou um fluxo \":\"): dê a ele um nome simples.",
7093
+ "fixtureInstructions": "\"{file}\" é um arquivo de instruções ({name}) na pasta de teste, que o Claude Code, o Codex ou o OpenCode lê como instruções para toda a execução — no topo, ou um aninhado quando um runtime lê um arquivo ao lado dele. Renomeie-o: um runtime lê um arquivo com esse nome como instruções, não como dado de teste."
7094
+ },
7095
+ "fixtures": {
7096
+ "title": "O que acontece com os arquivos de teste",
7097
+ "refused": "Os arquivos de um caso são copiados para a pasta da execução, menos os que um runtime carregaria sozinho: pastas de configuração em qualquer nível (.claude, .codex, .opencode, .agents, .git e afins), opencode.json, .mcp.json e .envrc no topo, e os arquivos de instruções CLAUDE.md, CLAUDE.local.md, AGENTS.md e AGENTS.override.md em qualquer nível.",
7098
+ "nested": "Um arquivo de instruções é recusado onde quer que esteja, não só no topo: o OpenCode acrescenta um AGENTS.md aninhado às instruções dele quando lê um arquivo daquela pasta, e o prompt do Codex manda o modelo seguir o AGENTS.md de uma pasta em que trabalha, então até uma cópia funda guiaria a execução. Dê outro nome ao dado de teste. Um teste ainda pode escrever um CLAUDE.md ou um AGENTS.md como saída dele; um avaliador então o recebe com um nome que nenhum runtime carrega.",
7099
+ "git": "Um passo de shell pode usar o git na própria pasta: init, add, commit, log, diff, branch e checkout funcionam, com o repositório guardado ao lado da pasta (não há .git nela) e SynaBun evaluation como autor, a menos que o teste defina o seu. A sandbox do próprio Codex não deixa o shell dele criar um repositório na pasta.",
7100
+ "symlinks": "Os passos de shell de teste do Claude Code e do OpenCode não podem criar links simbólicos, nem para dentro da pasta de teste: isso impede que um teste troque um link para ler fora da própria pasta. Operações que criam ou preservam links falham: python -m venv, instalação de um pacote npm local, links do pnpm/yarn, extração com tar, cp -a ou rsync preservando links e git checkout de um link simbólico commitado. O git checkout comum, sem links simbólicos, continua funcionando.",
7101
+ "symlinkWorkaround": "Use arquivos comuns em evals/files/ e copie sem preservar links simbólicos; adapte o caso para não criar links. Não há opção para permitir links simbólicos. Não presuma que venv --copies funciona: algumas versões do Python ainda exigem links. Instalações pela rede continuam indisponíveis."
7102
+ },
7103
+ "queue": {
7104
+ "busy": {
7105
+ "one": "{count} avaliação rodando ou aguardando",
7106
+ "other": "{count} avaliações rodando ou aguardando"
7107
+ }
7108
+ },
7109
+ "setup": {
7110
+ "title": "Configuração da execução",
7111
+ "what": "O que rodar",
7112
+ "kinds": {
7113
+ "both": "Tarefas e acionamentos",
7114
+ "task": "Tarefas",
7115
+ "trigger": "Acionamentos"
7116
+ },
7117
+ "runtime": "Runtime",
7118
+ "addRuntime": "Comparar em outro runtime",
7119
+ "removeRuntime": "Remover este runtime",
7120
+ "providerDefault": "{provider} · modelo mais barato",
7121
+ "providerDefaultModel": "{provider} · {model} (mais barato)",
7122
+ "providerOff": "{provider} · {reason}",
7123
+ "baseline": "Comparar com",
7124
+ "baselines": {
7125
+ "no-skill": "Sem a skill (base)",
7126
+ "revision": "Uma versão anterior",
7127
+ "off": "Nada (mais barato)"
7128
+ },
7129
+ "baselineVersion": "Versão anterior",
7130
+ "versionN": "Versão {n}",
7131
+ "ceilings": "Limites",
7132
+ "budget": "Limite de gasto",
7133
+ "budgetN": "Até ${n}",
7134
+ "minutes": "Limite de tempo",
7135
+ "minutesN": "{n} min",
7136
+ "more": "Mais opções",
7137
+ "moreHelp": "Repetições deixam a leitura mais estável (um acionamento passa com taxa de metade ou mais). O avaliador é outro provedor, não o que escreveu a skill, quando há um disponível.",
7138
+ "taskReps": "Repetições de tarefa",
7139
+ "triggerReps": "Repetições de acionamento",
7140
+ "grader": "Avaliado por",
7141
+ "graderAuto": "Automático (independente)",
7142
+ "judge": "Comparar respostas lado a lado quando um caso pedir"
7143
+ },
7144
+ "estimate": {
7145
+ "working": "Estimando…",
7146
+ "none": "A estimativa aparece aqui.",
7147
+ "runs": {
7148
+ "one": "{count} execução",
7149
+ "other": "{count} execuções"
7150
+ },
7151
+ "usd": "cerca de {low}–{high}",
7152
+ "free": "modelos gratuitos",
7153
+ "unpricedOnly": "nenhum preço conhecido",
7154
+ "unpriced": "sem preço para {names} (contado enquanto roda)",
7155
+ "minutes": "cerca de {low}–{high} min",
7156
+ "minutesOne": "cerca de {n} min",
7157
+ "grader": "Avaliado por {grader}.",
7158
+ "graderSame": "não independente: o mesmo provedor escreveu a skill",
7159
+ "notIndependent": "Nenhum outro provedor pode avaliar aqui, então {provider} avalia a própria skill: as notas ficam marcadas como não independentes.",
7160
+ "contamination": "{provider} também encontra uma skill com este nome fora do teste ({paths}): a base pode vê-la.",
7161
+ "skipped": {
7162
+ "shell": "{caseId} precisa de um shell, que este runtime só tem sob o sandbox do macOS: ele é pulado.",
7163
+ "other": "{caseId} é pulado."
7164
+ },
7165
+ "ceiling": {
7166
+ "budget": "A estimativa passa do limite de gasto: aumente-o ou rode menos casos.",
7167
+ "time": "A estimativa passa do limite de tempo: aumente-o ou rode menos casos."
7168
+ },
7169
+ "oneStep": "pode passar em até uma etapa"
7170
+ },
7171
+ "bar": {
7172
+ "run": "Rodar avaliações",
7173
+ "runAgain": "Rodar de novo",
7174
+ "starting": "Iniciando…",
7175
+ "running": "Uma avaliação está rodando: uma nova aguarda na fila.",
7176
+ "ready": "Roda os casos de treino e validação. Os casos reservados continuam lacrados.",
7177
+ "fixFirst": "Corrija os prompts de teste primeiro.",
7178
+ "onlyHeld": "Todos os casos estão reservados: adicione casos de treino ou validação para rodar avaliações.",
7179
+ "noRuntime": "Nenhum runtime pode rodar aqui: instale o Claude Code, o Codex ou o OpenCode.",
7180
+ "raiseCeiling": "Aumente o limite para rodar isto.",
7181
+ "final": "Verificação final",
7182
+ "finalHelp": "Roda só os casos reservados, uma vez, para confirmar uma versão antes de publicá-la. Usá-los para escolher edições os desgasta.",
7183
+ "optimise": "Melhorar descrição",
7184
+ "optimiseHelp": "Reescreve a descrição no máximo quatro vezes com os acionamentos de treino, mantém a melhor na validação e a confere uma vez no conjunto reservado. O resultado é uma versão candidata: nada muda sozinho.",
7185
+ "guest": "Rodar testes é do dono.",
7186
+ "codexFirst": "Permita o Codex nesta versão primeiro, ou escolha outro runtime."
7187
+ },
7188
+ "state": {
7189
+ "queued": "Aguardando",
7190
+ "preparing": "Preparando",
7191
+ "running": "Rodando",
7192
+ "grading": "Avaliando",
7193
+ "done": "Concluída",
7194
+ "failed": "Falhou",
7195
+ "cancelled": "Cancelada",
7196
+ "stopped": "Parada",
7197
+ "interrupted": "Interrompida",
7198
+ "damaged": "Danificada"
7199
+ },
7200
+ "trialState": {
7201
+ "pending": "Aguardando",
7202
+ "running": "Rodando",
7203
+ "completed": "Terminou",
7204
+ "failed": "Falhou",
7205
+ "timed_out": "Tempo esgotado",
7206
+ "skipped": "Pulada",
7207
+ "cancelled": "Cancelada"
7208
+ },
7209
+ "tone": {
7210
+ "running": "rodando",
7211
+ "pending": "aguardando",
7212
+ "skipped": "pulada",
7213
+ "error": "sem resultado",
7214
+ "pass": "passou",
7215
+ "fail": "falhou",
7216
+ "partial": "passou em parte",
7217
+ "neutral": "sem nota"
7218
+ },
7219
+ "config": {
7220
+ "candidate": "Com a skill",
7221
+ "baseline": "Base"
7222
+ },
7223
+ "split": {
7224
+ "train": "treino",
7225
+ "validation": "validação",
7226
+ "test": "reservado"
7227
+ },
7228
+ "run": {
7229
+ "title": {
7230
+ "evals": "Avaliação",
7231
+ "final": "Verificação final (reservados)",
7232
+ "optimise": "Otimização da descrição"
7233
+ },
7234
+ "none": "Nenhuma avaliação rodou para esta skill ainda. Pressione Rodar avaliações: os padrões são baratos.",
7235
+ "facts": "Em {runtimes}, {when}",
7236
+ "queued": {
7237
+ "one": "Aguardando: {count} avaliação na frente",
7238
+ "other": "Aguardando: {count} avaliações na frente"
7239
+ },
7240
+ "spend": "{spent} de {ceiling}",
7241
+ "spendTitle": "O que esta avaliação gastou, comparado ao limite",
7242
+ "estimated": "estimado {low}–{high}",
7243
+ "progress": {
7244
+ "one": "{done} de {count} execução terminou",
7245
+ "other": "{done} de {count} execuções terminaram"
7246
+ },
7247
+ "trials": "Execuções",
7248
+ "cancel": "Cancelar",
7249
+ "cancelling": "Cancelando…",
7250
+ "started": "A avaliação começou.",
7251
+ "nowState": "Avaliação: {state}.",
7252
+ "stopped": {
7253
+ "budget": "Parou no limite de gasto. O que foi medido fica guardado.",
7254
+ "time": "Parou no limite de tempo. O que foi medido fica guardado."
7255
+ }
7256
+ },
7257
+ "report": {
7258
+ "loading": "Lendo os resultados…",
7259
+ "stale": {
7260
+ "revision": "Estes resultados são de uma versão mais antiga da skill.",
7261
+ "suite": "Os prompts de teste mudaram desde que isto rodou."
7262
+ },
7263
+ "task": "Tarefas",
7264
+ "trigger": "Acionamentos",
7265
+ "preference": "Fidelidade às preferências",
7266
+ "withSkill": "com a skill",
7267
+ "withoutSkill": "sem",
7268
+ "withEarlier": "versão anterior",
7269
+ "points": "pts",
7270
+ "deltaTitle": "Com a skill menos a base, caso a caso e repetição a repetição",
7271
+ "pairs": {
7272
+ "one": "{count} par",
7273
+ "other": "{count} pares"
7274
+ },
7275
+ "queriesRight": "consultas lidas certo",
7276
+ "polarity": "devem escolher: {pos} · quase-acertos: {neg}",
7277
+ "unread": {
7278
+ "one": "{count} sem leitura",
7279
+ "other": "{count} sem leitura"
7280
+ },
7281
+ "failedRuns": {
7282
+ "one": "{count} execução falhou",
7283
+ "other": "{count} execuções falharam"
7284
+ },
7285
+ "taskCases": "Casos de tarefa",
7286
+ "triggerCases": "Casos de acionamento",
7287
+ "case": "Caso",
7288
+ "change": "Mudança",
7289
+ "open": "Abrir",
7290
+ "judgedTitle": "Uma comparação às cegas das duas respostas",
7291
+ "query": "Consulta",
7292
+ "expected": "Esperado",
7293
+ "reading": "Leitura",
7294
+ "result": "Resultado",
7295
+ "shouldPick": "Deve escolher a skill",
7296
+ "nearMiss": "Quase-acerto: não deve",
7297
+ "picked": "escolheu {n} de {of}",
7298
+ "noReading": "Sem leitura (a execução não terminou)",
7299
+ "right": "Certo",
7300
+ "wrong": "Errado",
7301
+ "notes": {
7302
+ "one": "{count} observação sobre os prompts de teste",
7303
+ "other": "{count} observações sobre os prompts de teste"
7304
+ },
7305
+ "rerun": {
7306
+ "one": "Rodar de novo o {count} caso que falhou",
7307
+ "other": "Rodar de novo os {count} casos que falharam"
7308
+ },
7309
+ "empty": "Nada foi medido.",
7310
+ "colWith": "Com a skill",
7311
+ "colWithout": "Sem",
7312
+ "colEarlier": "Versão anterior"
7313
+ },
7314
+ "outcome": {
7315
+ "better": "melhor",
7316
+ "worse": "pior",
7317
+ "same": "igual"
7318
+ },
7319
+ "judged": {
7320
+ "candidate": "julgada melhor com ela",
7321
+ "baseline": "julgada melhor sem ela",
7322
+ "tie": "julgado empate",
7323
+ "inconclusive": "juiz inconclusivo"
7324
+ },
7325
+ "method": {
7326
+ "native_skill_tool": "visto",
7327
+ "native_skill_toolHelp": "O runtime chamou a ferramenta de skills com esta skill.",
7328
+ "successful_skill_file_read": "inferido",
7329
+ "successful_skill_file_readHelp": "O runtime leu o SKILL.md da skill (o Codex não tem ferramenta de skills): uma inferência, não uma chamada."
7330
+ },
7331
+ "note": {
7332
+ "always-pass": "{caseId}: \"{assertionId}\" passa todas as vezes, então não mede nada.",
7333
+ "always-fail": "{caseId}: \"{assertionId}\" falha todas as vezes: confira se dá para cumpri-la.",
7334
+ "not-discriminating": "{caseId}: \"{assertionId}\" passa com e sem a skill do mesmo jeito: não mostra o que a skill acrescenta.",
7335
+ "skill-worse": "{caseId}: a skill foi pior do que nenhuma skill."
7336
+ },
7337
+ "assertion": {
7338
+ "passed": "Passou",
7339
+ "failed": "Falhou",
7340
+ "unverifiable": "Não dá para saber",
7341
+ "error": "Sem nota",
7342
+ "byCheck": "verificado por código",
7343
+ "byModel": "avaliado por um modelo",
7344
+ "preference": "preferência"
7345
+ },
7346
+ "export": {
7347
+ "format": "Formato de exportação",
7348
+ "native": "SynaBun (JSON)",
7349
+ "skill-creator": "skill-creator (ZIP)",
7350
+ "agent-skills": "Agent Skills (JSON)",
7351
+ "button": "Exportar"
7352
+ },
7353
+ "optimise": {
7354
+ "title": "Descrições tentadas",
7355
+ "explain": "As consultas de treino guiam as reescritas, a validação escolhe a melhor (a mais antiga em caso de empate) e as consultas reservadas avaliam a vencedora uma vez.",
7356
+ "description": "Descrição",
7357
+ "train": "Treino",
7358
+ "validation": "Validação",
7359
+ "best": "melhor",
7360
+ "heldOut": "reservados: {score}",
7361
+ "none": "A otimização ainda não tem rodadas.",
7362
+ "proposed": "A melhor descrição foi proposta como versão candidata. Nada mudou na skill: abra-a em Versões para compará-la ou torná-la seu rascunho.",
7363
+ "openVersions": "Abrir em Versões",
7364
+ "keepOriginal": "A descrição atual continuou a melhor: nada foi proposto.",
7365
+ "exit": {
7366
+ "train_pass": "Parou cedo: todas as consultas de treino foram lidas certo.",
7367
+ "max_evaluations": "Parou depois de cinco descrições (o limite).",
7368
+ "budget": "Parou no limite de gasto.",
7369
+ "time": "Parou no limite de tempo.",
7370
+ "cancelled": "Cancelada.",
7371
+ "proposal_refused": "Uma proposta foi recusada (longa demais, com uma consulta reservada copiada ou repetida): o ciclo terminou.",
7372
+ "proposer_failed": "O proponente não respondeu: o ciclo terminou.",
7373
+ "unpatchable": "Não foi possível mudar a descrição neste SKILL.md.",
7374
+ "other": "Terminou."
7375
+ }
7376
+ },
7377
+ "trial": {
7378
+ "title": "Caso {caseId}",
7379
+ "loading": "Abrindo a execução…",
7380
+ "failed": "Não foi possível abrir a execução: {error}",
7381
+ "prev": "Execução anterior (←)",
7382
+ "next": "Próxima execução (→)",
7383
+ "close": "Fechar",
7384
+ "request": "O pedido",
7385
+ "query": "A consulta",
7386
+ "expected": "O que uma boa resposta contém",
7387
+ "answer": "A resposta",
7388
+ "noAnswer": "Sem resposta.",
7389
+ "truncated": "A resposta é cortada aqui; a exportação tem tudo.",
7390
+ "files": "Arquivos que escreveu",
7391
+ "link": "um link (não seguido)",
7392
+ "notText": "Este arquivo não é texto.",
7393
+ "picked": "Escolheu a skill ({method}).",
7394
+ "notPicked": "Não escolheu a skill.",
7395
+ "others": "citou outras skills: {names}",
7396
+ "grades": "Asserções: {passed} de {total} passaram",
7397
+ "gradedBy": "avaliado por {grader}",
7398
+ "previous": "A resposta da execução anterior",
7399
+ "previousNote": "Sua observação nela: {note}",
7400
+ "contamination": "uma skill com o mesmo nome estava ao alcance",
7401
+ "note": "Sua observação",
7402
+ "notePlaceholder": "O que estava certo ou errado, o que manter, o que mudar…",
7403
+ "reviewed": "Revisado",
7404
+ "saving": "Salvando…",
7405
+ "saved": "Salvo {when}",
7406
+ "unsaved": "Ainda não salvo",
7407
+ "saveFailed": "Não salvo: tente de novo",
7408
+ "config": "gravado numa pasta de onde um runtime carrega configurações",
7409
+ "kept": "A pasta da execução não existe mais: isto é o que o registro dela guardou.",
7410
+ "keptClipped": "A pasta da execução não existe mais: este é o início do arquivo, como o registro dela o guardou.",
7411
+ "detailMissing": "Parte do registro desta tentativa está faltando: a resposta e os arquivos não podem ser mostrados por completo."
7412
+ },
7413
+ "history": {
7414
+ "title": "Histórico",
7415
+ "count": {
7416
+ "one": "Histórico · {count} execução",
7417
+ "other": "Histórico · {count} execuções"
7418
+ },
7419
+ "loading": "Lendo o histórico…",
7420
+ "failed": "Não foi possível ler o histórico: {error}",
7421
+ "empty": "As execuções desta skill aparecem aqui.",
7422
+ "help": "Marque duas execuções para compará-las caso a caso.",
7423
+ "pick": "Selecionar para comparar",
7424
+ "compare": "Comparar",
7425
+ "comparison": "Comparação",
7426
+ "older": "Mais antiga",
7427
+ "newer": "Mais nova",
7428
+ "runtime": "Runtime",
7429
+ "stale": "versão antiga",
7430
+ "staleTitle": "Esta execução testou uma versão que não é a mais recente",
7431
+ "differentSuite": "As duas execuções usaram prompts de teste diferentes: uma mudança pode vir dos casos, não da skill.",
7432
+ "sameRevision": "As duas execuções testaram a mesma versão."
7433
+ },
7434
+ "errors": {
7435
+ "workerBrowser": "O navegador de automação do SynaBun não pode agir como proprietário. Abra o aplicativo ou seu próprio navegador para executar esta ação.",
7436
+ "pageSession": "As avaliações são lidas pela própria página do SynaBun. Recarregue a página e tente novamente.",
7437
+ "owner": "Abra o Skills Studio como proprietário para usar as avaliações.",
7438
+ "unavailable": "O ambiente ou modelo solicitado não está disponível. Confira a seleção e tente novamente.",
7439
+ "missing": "Esta avaliação ou versão não está mais disponível. Atualize o histórico.",
7440
+ "request": "A solicitação falhou ({code}). Tente novamente.",
7441
+ "budget": "Isto custaria cerca de {low}–{high}: aumente o limite de gasto ou rode menos casos.",
7442
+ "time": "Isto leva mais que o limite de tempo: aumente-o ou rode menos casos.",
7443
+ "queueFull": "Há avaliações demais aguardando: espere uma terminar ou cancele uma.",
7444
+ "notReady": "Os workers do Assistente ainda não estão rodando: tente de novo em instantes.",
7445
+ "suite": "Os prompts de teste têm problemas: corrija-os em Editar.",
7446
+ "runtime": "Esse runtime não pode rodar aqui: {error}",
7447
+ "optimise": "Os casos de acionamento não sustentam uma otimização: ela precisa de um positivo e um quase-acerto no treino e de um caso de validação.",
7448
+ "start": "Não foi possível iniciar a avaliação: {error}",
7449
+ "open": "Não foi possível abrir a avaliação: {error}",
7450
+ "cancel": "Não foi possível cancelar: {error}",
7451
+ "compare": "Não foi possível comparar as execuções: {error}",
7452
+ "sealed": "Os casos reservados só rodam numa verificação final.",
7453
+ "codex": "O Codex só roda uma versão depois que você a permitir aqui."
7454
+ }
7455
+ },
7456
+ "edit": {
7457
+ "kind": {
7458
+ "markdown": "Markdown",
7459
+ "yaml": "YAML",
7460
+ "json": "JSON",
7461
+ "script": "Script",
7462
+ "text": "Texto",
7463
+ "image": "Imagem",
7464
+ "binary": "Binário"
7465
+ },
7466
+ "newFileLabel": {
7467
+ "reference": "Caminho da referência",
7468
+ "script": "Caminho do script",
7469
+ "asset": "Caminho do recurso",
7470
+ "other": "Caminho do arquivo"
7471
+ },
7472
+ "pathProblem": {
7473
+ "required": "Dê um caminho ao arquivo.",
7474
+ "invalid": "Use um caminho dentro da skill: sem barra no início, sem \"..\".",
7475
+ "hidden": "Arquivos ocultos (nome começando com ponto) ficam fora das skills.",
7476
+ "exists": "Já existe um arquivo com esse nome."
7477
+ },
7478
+ "pane": {
7479
+ "files": "Arquivos",
7480
+ "doc": "Documento",
7481
+ "details": "Detalhes"
7482
+ },
7483
+ "state": {
7484
+ "saving": "Salvando…",
7485
+ "unsaved": "Não salvo",
7486
+ "readOnly": "Somente leitura",
7487
+ "draftSaved": "Salvo no rascunho · não instalado",
7488
+ "saved": "Salvo"
7489
+ },
7490
+ "lines": {
7491
+ "one": "{n} linha",
7492
+ "other": "{n} linhas"
7493
+ },
7494
+ "tokens": "≈{n} tokens",
7495
+ "tokensHelp": "Uma estimativa: caracteres divididos por 4. Cada assistente conta tokens do seu jeito.",
7496
+ "guidance": "{tokens} de {max} tokens no corpo",
7497
+ "guidanceHelp": "Orientação para o corpo de um SKILL.md: cerca de {lines} linhas ou {tokens} tokens; leve os detalhes para arquivos de referência. Não é um limite de envio.",
7498
+ "revision": "versão {id}",
7499
+ "noVersion": "sem versão ainda",
7500
+ "fileRevision": "arquivo {id}",
7501
+ "line": "Linha {line}",
7502
+ "problems": "Problemas",
7503
+ "noProblems": "As verificações não encontraram problemas.",
7504
+ "otherRuntimes": "Para outros assistentes ({count})",
7505
+ "problemsCount": {
7506
+ "one": "{count} problema",
7507
+ "other": "{count} problemas"
7508
+ },
7509
+ "image": "imagem",
7510
+ "binary": "binário",
7511
+ "renameNamed": "Renomear {name}",
7512
+ "rename": "Renomear",
7513
+ "deleteNamed": "Excluir {name}",
7514
+ "delete": "Excluir",
7515
+ "newFile": "Novo arquivo…",
7516
+ "newKind": {
7517
+ "reference": "Referência: lida só quando necessário",
7518
+ "script": "Script: executado, não lido",
7519
+ "asset": "Recurso: um modelo, uma imagem, dados",
7520
+ "other": "Outro arquivo"
7521
+ },
7522
+ "upload": "Enviar",
7523
+ "closeTab": "Fechar {name}",
7524
+ "preview": "Prévia",
7525
+ "compare": "Comparar",
7526
+ "compareHelp": "Mostrar as mudanças desde o último salvamento do arquivo",
7527
+ "loadingEditor": "Carregando o editor…",
7528
+ "previewLabel": "Prévia do documento",
7529
+ "filesTruncated": "Esta skill tem mais arquivos do que os listados.",
7530
+ "openFiles": "Arquivos abertos",
7531
+ "showPane": "Mostrar painel",
7532
+ "editorFailed": "O editor não carregou ({error}): uma caixa de texto simples edita o mesmo documento.",
7533
+ "imageAlt": "Prévia de {name}",
7534
+ "binaryInfo": "Não é um arquivo de texto ({size}): fica como está, nunca é editado como texto.",
7535
+ "binaryInfoNoSize": "Não é um arquivo de texto: fica como está, nunca é editado como texto.",
7536
+ "binaryHead": "O SKILL.md não é texto UTF-8: um assistente pode lê-lo errado. Salve-o como UTF-8 para editá-lo aqui.",
7537
+ "download": "Baixar",
7538
+ "noHead": "Este documento não tem metadados para mostrar.",
7539
+ "needsLibrary": "Este arquivo abre quando a skill estiver na biblioteca: adicione-a à biblioteca primeiro.",
7540
+ "needsRestart": "Este arquivo abre depois que o SynaBun reiniciar: o servidor de agora não lê os outros arquivos desta skill.",
7541
+ "openFailed": "Não foi possível abrir {file}: {error}",
7542
+ "linkMissing": "{file} não é um arquivo desta skill.",
7543
+ "newFileTitle": "Novo arquivo",
7544
+ "createFailed": "Não foi possível criar o arquivo: {error}",
7545
+ "created": "{file} criado.",
7546
+ "uploadTitle": "Enviar um arquivo",
7547
+ "uploadLabel": "Caminho na skill",
7548
+ "uploadFailed": "Não foi possível enviar o arquivo: {error}",
7549
+ "uploaded": "{file} enviado.",
7550
+ "deleteTitle": "Excluir {file}?",
7551
+ "deleteFromDraft": "O arquivo é removido do rascunho. As cópias instaladas o mantêm até você publicar.",
7552
+ "deleteAdopt": "A skill é adicionada à biblioteca primeiro, depois o arquivo é removido do rascunho dela. A pasta no disco o mantém até você publicar.",
7553
+ "deleteUnsaved": "A aba dele tem alterações não salvas: mantenha-as abertas (salvar traz o arquivo de volta) ou descarte-as com o arquivo.",
7554
+ "deleteKeep": "Excluir, manter minhas alterações",
7555
+ "deleteDiscard": "Excluir e descartar",
7556
+ "deleteFailed": "Não foi possível excluir o arquivo: {error}",
7557
+ "deletedKept": "{file} excluído: suas alterações continuam abertas, e salvar traz o arquivo de volta.",
7558
+ "deleted": "{file} excluído.",
7559
+ "renameTitle": "Renomear {file}",
7560
+ "renameLabel": "Novo caminho",
7561
+ "renameFailed": "Não foi possível renomear o arquivo: {error}",
7562
+ "renamed": "{from} renomeado para {to}.",
7563
+ "revertChange": "Desfazer"
7564
+ },
7565
+ "form": {
7566
+ "field": {
7567
+ "name": "Nome",
7568
+ "description": "Descrição",
7569
+ "argument-hint": "Dica de argumento",
7570
+ "allowed-tools": "Ferramentas pré-aprovadas",
7571
+ "user-invocable": "Mostrar como /nome no menu",
7572
+ "disable-model-invocation": "Só quando eu digitar /nome",
7573
+ "model": "Modelo",
7574
+ "tools": "Ferramentas (separadas por vírgulas)",
7575
+ "maxTurns": "Máximo de turnos",
7576
+ "color": "Cor"
7577
+ },
7578
+ "unlimited": "0 = sem limite",
7579
+ "invocation": "Quando ela roda",
7580
+ "invocationAuto": "O Claude a escolhe quando for relevante, e {name}",
7581
+ "invocationManual": "Só quando eu digitar {name}",
7582
+ "modelInherit": "O modelo da sessão",
7583
+ "addTool": "Adicionar uma ferramenta…",
7584
+ "toolsHelp": "Estas rodam sem perguntar enquanto a skill está ativa. Elas não bloqueiam outras ferramentas.",
7585
+ "removeTool": "Remover {tool}",
7586
+ "toolPattern": "Um padrão de ferramenta",
7587
+ "toolPatternPlaceholder": "ex.: Bash(git:*)",
7588
+ "add": "Adicionar",
7589
+ "note": {
7590
+ "notText": "Não é texto: edite-o no documento.",
7591
+ "notTools": "Não é uma lista de nomes de ferramentas: edite-a no documento.",
7592
+ "notBoolean": "Não é verdadeiro ou falso: edite-o no documento.",
7593
+ "notNumber": "Não é um número inteiro: edite-o no documento.",
7594
+ "alias": "Um alias YAML: edite-o no documento."
7595
+ },
7596
+ "reason": {
7597
+ "errors": "O frontmatter tem erros: corrija-os no documento. Os campos ficam somente leitura até lá.",
7598
+ "unsupported": "Este frontmatter está escrito de um jeito que o formulário não altera: edite-o no documento."
7599
+ },
7600
+ "budget": {
7601
+ "portable": "Agent Skills",
7602
+ "claude": "Lista do Claude Code",
7603
+ "codex": "Codex",
7604
+ "opencode": "OpenCode"
7605
+ },
7606
+ "budgetCount": "{used} / {limit}",
7607
+ "saysWhat": "Diz o que faz",
7608
+ "missingWhat": "Diga o que ela faz, em poucas palavras",
7609
+ "saysWhen": "Diz quando usar",
7610
+ "missingWhen": "Diga quando usá-la (\"Use quando…\")",
7611
+ "advice": {
7612
+ "ok": "Os modelos leem a descrição para decidir quando usar a skill: ela diz o quê e quando.",
7613
+ "add-when": "Diga quando usá-la: o pedido ou a situação que deve escolher esta skill.",
7614
+ "add-what": "Diga o que a skill faz antes de dizer quando usá-la.",
7615
+ "write-one": "Escreva uma descrição: sem ela, os modelos não sabem quando usar a skill.",
7616
+ "too-long": "Longa demais para a lista de um assistente: encurte-a ou leve os detalhes para o corpo."
7617
+ },
7618
+ "nameMissing": "Dê um nome a ela",
7619
+ "nameFolder": "A pasta é {folder}: a skill é chamada pelo nome",
7620
+ "nameFormat": "Use letras minúsculas, dígitos e hífens simples",
7621
+ "nameMatches": "Igual ao nome da pasta",
7622
+ "nameOk": "Um nome que todo assistente aceita",
7623
+ "binaryHead": "Os campos não são lidos de um arquivo que não é texto UTF-8.",
7624
+ "loading": "Lendo o frontmatter…",
7625
+ "cannotRead": "O formulário não consegue ler este frontmatter: edite-o no documento.",
7626
+ "yamlLabel": "O frontmatter como está escrito",
7627
+ "noFrontmatter": "Sem frontmatter.",
7628
+ "editInDocument": "Editar no documento",
7629
+ "yamlHelp": "Formulário e YAML são um só documento: o formulário altera só a chave que você edita, e todo o resto fica byte por byte.",
7630
+ "notShowing": "Estes campos estão em {file}, que não é o arquivo mostrado.",
7631
+ "openIt": "Abrir",
7632
+ "label": "Metadados",
7633
+ "advanced": {
7634
+ "one": "Avançado: mais {count} chave, mantida como está escrita",
7635
+ "other": "Avançado: mais {count} chaves, mantidas como estão escritas"
7636
+ },
7637
+ "advancedHelp": "O formulário não tem campo para estas. Elas ficam exatamente como estão escritas; edite-as no documento.",
7638
+ "advancedNone": "Nenhuma outra chave: toda chave está no formulário.",
7639
+ "viewLabel": "Visão dos metadados",
7640
+ "form": "Formulário",
7641
+ "yaml": "YAML",
7642
+ "invalidNumber": "Um número inteiro, 0 ou mais.",
7643
+ "patchFailed": "{field} não pôde ser alterado aqui: edite-o no documento."
7644
+ },
7645
+ "snippets": {
7646
+ "title": "Trechos",
7647
+ "search": "Buscar trechos",
7648
+ "group": {
7649
+ "structure": "Estrutura",
7650
+ "workflow": "Fluxo de trabalho",
7651
+ "files": "Arquivos e variáveis",
7652
+ "frontmatter": "Chaves do frontmatter",
7653
+ "custom": "Seus trechos"
7654
+ },
7655
+ "whereKeys": "Chaves: {keys}",
7656
+ "whereCaret": "No cursor",
7657
+ "insert": "Inserir",
7658
+ "insertNamed": "Inserir {name}",
7659
+ "none": "Nenhum trecho corresponde.",
7660
+ "openHeadFirst": "Chaves do frontmatter vão no SKILL.md: abra-o primeiro.",
7661
+ "failed": {
7662
+ "yaml": "O frontmatter tem erros: corrija-os antes de adicionar chaves.",
7663
+ "other": "Não foi possível inserir o trecho."
7664
+ },
7665
+ "inserted": "{name} inserido.",
7666
+ "role": {
7667
+ "name": "Papel",
7668
+ "desc": "Quem o modelo deve ser, e para quem"
7669
+ },
7670
+ "steps": {
7671
+ "name": "Passos",
7672
+ "desc": "Passos numerados, em ordem"
7673
+ },
7674
+ "constraints": {
7675
+ "name": "Regras",
7676
+ "desc": "O que o modelo deve e não deve fazer"
7677
+ },
7678
+ "output": {
7679
+ "name": "Saída",
7680
+ "desc": "O formato da resposta"
7681
+ },
7682
+ "examples": {
7683
+ "name": "Exemplos",
7684
+ "desc": "Um pedido e uma boa resposta"
7685
+ },
7686
+ "context": {
7687
+ "name": "Reunir contexto",
7688
+ "desc": "Ler antes de mudar qualquer coisa"
7689
+ },
7690
+ "errors": {
7691
+ "name": "Quando algo falhar",
7692
+ "desc": "Dizer, e tentar de outro jeito"
7693
+ },
7694
+ "input-check": {
7695
+ "name": "Verificar a entrada",
7696
+ "desc": "Perguntar quando $ARGUMENTS não estiver claro"
7697
+ },
7698
+ "confirm": {
7699
+ "name": "Confirmar antes",
7700
+ "desc": "Um sim antes de qualquer coisa destrutiva"
7701
+ },
7702
+ "scope": {
7703
+ "name": "Escopo",
7704
+ "desc": "O que ela cobre, e o que não cobre"
7705
+ },
7706
+ "references": {
7707
+ "name": "Referências",
7708
+ "desc": "Arquivos lidos só quando necessário"
7709
+ },
7710
+ "variables": {
7711
+ "name": "Variáveis",
7712
+ "desc": "$ARGUMENTS e ${CLAUDE_SKILL_DIR}"
7713
+ },
7714
+ "dynamic": {
7715
+ "name": "Estado atual",
7716
+ "desc": "Um comando de shell executado quando a skill carrega (a análise o lista)"
7717
+ },
7718
+ "fm-tools-readonly": {
7719
+ "name": "Pré-aprovadas: ferramentas de leitura",
7720
+ "desc": "Read, Grep e Glob rodam sem perguntar"
7721
+ },
7722
+ "fm-agent-tools": {
7723
+ "name": "Ferramentas: só leitura",
7724
+ "desc": "O agente recebe Read, Grep e Glob"
7725
+ },
7726
+ "fm-manual": {
7727
+ "name": "Só quando eu digitar /nome",
7728
+ "desc": "O modelo nunca a inicia sozinho"
7729
+ },
7730
+ "fm-hint": {
7731
+ "name": "Dica de argumento",
7732
+ "desc": "O que digitar depois de /nome"
7733
+ },
7734
+ "fm-when": {
7735
+ "name": "Quando usar",
7736
+ "desc": "O Claude Code a lista com a descrição"
7737
+ },
7738
+ "fm-fork": {
7739
+ "name": "Rodar em um subagente",
7740
+ "desc": "Contexto próprio, separado da conversa"
7741
+ },
7742
+ "fm-model": {
7743
+ "name": "Modelo",
7744
+ "desc": "O modelo que o agente usa"
7745
+ }
7746
+ },
7747
+ "diff": {
7748
+ "added": "adicionado",
7749
+ "removed": "removido",
7750
+ "same": "Sem diferenças.",
7751
+ "unchanged": {
7752
+ "one": "{count} arquivo é igual.",
7753
+ "other": "{count} arquivos são iguais."
7754
+ },
7755
+ "status": {
7756
+ "added": "Adicionado",
7757
+ "removed": "Removido",
7758
+ "modified": "Alterado",
7759
+ "mode": "Modo alterado"
7760
+ },
7761
+ "note": {
7762
+ "binary": "Não é texto: comparado só pelos bytes.",
7763
+ "large": "Grande demais para comparar linha a linha.",
7764
+ "far": "Diferente demais para comparar linha a linha."
7765
+ },
7766
+ "eol": "As quebras de linha diferem ({from} → {to}): toda linha conta como alterada."
7767
+ },
7768
+ "versions": {
7769
+ "author": {
7770
+ "owner": "Você",
7771
+ "system": "SynaBun",
7772
+ "assistant": "Assistente do SynaBun",
7773
+ "agent": "Um agente"
7774
+ },
7775
+ "rev": "Versão {id}",
7776
+ "label": {
7777
+ "latest": "Mais recente",
7778
+ "candidate": "Candidata",
7779
+ "best": "Melhor",
7780
+ "approved": "Aprovada",
7781
+ "upstream": "Do SynaBun",
7782
+ "installed": "Instalada: {where}",
7783
+ "draft": "Rascunho"
7784
+ },
7785
+ "source": {
7786
+ "bundled": "veio com o SynaBun",
7787
+ "adopted": "adicionada da sua pasta",
7788
+ "draft": "salva do rascunho",
7789
+ "assistant": "feita pelo Assistente",
7790
+ "import": "importada",
7791
+ "restore": "restaurada",
7792
+ "customize": "cópia personalizada",
7793
+ "local": "feita aqui",
7794
+ "github": "do GitHub"
7795
+ },
7796
+ "files": {
7797
+ "one": "{count} arquivo",
7798
+ "other": "{count} arquivos"
7799
+ },
7800
+ "diffPrev": "Mudanças em relação à anterior",
7801
+ "restore": "Restaurar como rascunho",
7802
+ "markCandidate": "Marcar como candidata",
7803
+ "markBest": "Marcar como melhor",
7804
+ "publishThis": "Publicar esta",
7805
+ "noneTitle": "Nenhuma versão aqui",
7806
+ "none": {
7807
+ "adopt": "Esta pasta ainda não está na biblioteca do SynaBun, então não tem versões. Adicione-a à biblioteca: os arquivos como estão agora viram a primeira versão.",
7808
+ "inplace": "Comandos e agentes são arquivos únicos mantidos onde estão: versões são para skills da biblioteca.",
7809
+ "readonly": "Isto é somente leitura e não está na biblioteca do SynaBun: personalize uma cópia para ter versões suas."
7810
+ },
7811
+ "loading": "Lendo as versões…",
7812
+ "loadFailed": "Não foi possível ler as versões: {error}",
7813
+ "title": {
7814
+ "one": "{count} versão",
7815
+ "other": "{count} versões"
7816
+ },
7817
+ "from": "De",
7818
+ "to": "Para",
7819
+ "compare": "Comparar",
7820
+ "draft": "Rascunho",
7821
+ "draftChanged": {
7822
+ "one": "{count} arquivo mudou desde a sua versão",
7823
+ "other": "{count} arquivos mudaram desde a sua versão"
7824
+ },
7825
+ "draftSame": "Igual à sua versão",
7826
+ "diffDraft": "Mostrar as mudanças do rascunho",
7827
+ "noRevisions": "Nenhuma versão foi salva ainda.",
7828
+ "comparing": "Comparando…",
7829
+ "diffTitle": "Mudanças",
7830
+ "diffFailed": "Não foi possível comparar as versões: {error}",
7831
+ "diffDraftTitle": "As mudanças do rascunho desde a sua versão",
7832
+ "pickTwo": "Escolha duas versões diferentes.",
7833
+ "marked": {
7834
+ "candidate": "Marcada como candidata.",
7835
+ "best": "Marcada como melhor."
7836
+ },
7837
+ "markFailed": "Não foi possível marcar: {error}",
7838
+ "restoreBlockedTitle": "Salve ou descarte primeiro",
7839
+ "restoreBlocked": {
7840
+ "one": "{count} arquivo aberto tem alterações não salvas. Salve-as ou descarte-as antes de restaurar uma versão.",
7841
+ "other": "{count} arquivos abertos têm alterações não salvas. Salve-as ou descarte-as antes de restaurar uma versão."
7842
+ },
7843
+ "restoreTitle": "Substituir o rascunho?",
7844
+ "restoreDraftChanged": {
7845
+ "one": "O rascunho tem {count} alteração que não está salva como versão.",
7846
+ "other": "O rascunho tem {count} alterações que não estão salvas como versão."
7847
+ },
7848
+ "restoreExplain": "Restaurar cria um novo rascunho a partir daquela versão. Salve o rascunho atual como versão antes para manter as alterações dele.",
7849
+ "restoreReplace": "Substituir o rascunho",
7850
+ "restoreSaveFirst": "Salvar como versão e restaurar",
7851
+ "restored": "A versão {id} agora é o rascunho.",
7852
+ "restoreFailed": "Não foi possível restaurar a versão: {error}"
7853
+ },
7854
+ "publish": {
7855
+ "targetProject": "{runtime} · projeto {project}",
7856
+ "targetAccount": "{runtime} · conta {account}",
7857
+ "targetUser": "{runtime} · todos os projetos",
7858
+ "state": {
7859
+ "installed": "Instalada, esta versão",
7860
+ "outdated": "Instalada, outra versão",
7861
+ "present": "Uma pasta que o SynaBun não instalou",
7862
+ "bridge": "Formato antigo",
7863
+ "none": "Não instalada",
7864
+ "off": "Desligado",
7865
+ "unavailable": "Não configurado neste computador",
7866
+ "viaClaude": "Não está aqui; um OpenCode no terminal lê a pasta do Claude Code",
7867
+ "notInstalled": "Não instalado neste computador"
7868
+ },
7869
+ "noneTitle": "Nada para publicar aqui",
7870
+ "none": {
7871
+ "adopt": "Adicione esta pasta à biblioteca primeiro: aí as versões dela são instaladas de lá, com um plano e um backup.",
7872
+ "inplace": "Comandos e agentes são salvos onde estão; não há nada para instalar. Exportar cria um pacote.",
7873
+ "readonly": "Não cabe a você publicar isto. Personalize uma cópia para ter a sua própria versão."
7874
+ },
7875
+ "exportBundle": "Pacote do SynaBun",
7876
+ "loading": "Lendo onde ela está instalada…",
7877
+ "loadFailed": "Não foi possível ler o estado das instalações: {error}",
7878
+ "version": "Versão",
7879
+ "versionMeta": "salva {when}",
7880
+ "noVersion": "Esta skill ainda não tem versão: salve o rascunho como versão para publicá-la.",
7881
+ "draftNotPublished": {
7882
+ "one": "O rascunho tem {count} alteração que ainda não é uma versão, então não é o que será instalado.",
7883
+ "other": "O rascunho tem {count} alterações que ainda não são uma versão, então não são o que será instalado."
7884
+ },
7885
+ "saveVersionAndUse": "Salvar como versão e usá-la",
7886
+ "targetsCaption": "Destinos de instalação",
7887
+ "pick": "Escolher",
7888
+ "col": {
7889
+ "target": "Assistente e escopo",
7890
+ "folder": "Pasta",
7891
+ "now": "Lá agora"
7892
+ },
7893
+ "pickTarget": "Instalar em {target}",
7894
+ "sharedOff": "Ligue a pasta compartilhada em Configurações → Skills para instalar aqui.",
7895
+ "verify": "Verificar",
7896
+ "rollback": "Reverter",
7897
+ "remove": "Remover",
7898
+ "bridgeHelp": "O {runtime} chega a ela por um arquivo de ponte antigo (o formato antigo): mova-o em Configurações → Skills → Pastas de skills.",
7899
+ "addProject": "Adicionar um projeto",
7900
+ "chooseProject": "Escolha um projeto…",
7901
+ "guest": "Só o host instala skills.",
7902
+ "exportTitle": "Exportar",
7903
+ "settingsNote": "Configurações → Skills mostra as mesmas instalações: os botões de lá também usam estes planos.",
7904
+ "fact": {
7905
+ "written": {
7906
+ "ok": "Gravada: a pasta tem exatamente estes arquivos",
7907
+ "missing": "Gravada: a pasta sumiu",
7908
+ "changed": "Gravada: a pasta mudou desde a instalação",
7909
+ "unknown": "Gravada: ainda não verificado"
7910
+ },
7911
+ "discoverable": {
7912
+ "yes": "Encontrável: as regras do assistente a encontram",
7913
+ "no": "Encontrável: o assistente não lê essa pasta agora",
7914
+ "unknown": "Encontrável: não verificado"
7915
+ },
7916
+ "eligibility": {
7917
+ "enabled": "Ativada nas configurações do assistente",
7918
+ "disabled": "Desligada nas configurações do assistente",
7919
+ "unknown": "Configurações: não puderam ser lidas"
7920
+ },
7921
+ "discovered": {
7922
+ "yes": "O {runtime} a lista",
7923
+ "no": "O {runtime} não a lista",
7924
+ "unknown": "Não foi possível perguntar ao {runtime}",
7925
+ "not-installed": "O {runtime} não está instalado neste computador, então não foi possível perguntar; ele encontra a skill quando for instalado",
7926
+ "not-running": "O {runtime} do SynaBun não está em execução, então não foi possível perguntar: abra o painel do {runtime} e verifique de novo",
7927
+ "no-answer": "O {runtime} não respondeu, então não foi possível perguntar: verifique de novo daqui a pouco",
7928
+ "no-list": "O {runtime} não tem uma lista para consultar; as regras de pasta dele foram verificadas no lugar",
7929
+ "terminal-only": "O {runtime} no terminal lê esta pasta; o painel do {runtime} do SynaBun não, então ele não foi consultado"
7930
+ }
7931
+ },
7932
+ "readBy": "Lida por {runtimes}",
7933
+ "blocked": {
7934
+ "no_root": "Não há pasta para este destino.",
7935
+ "shared_root_off": "A pasta compartilhada está desligada.",
7936
+ "root_read_only": "O SynaBun não escreve nesta pasta.",
7937
+ "root_unusable": "A pasta não pode ser usada.",
7938
+ "lint_errors": "Problemas impedem que ela funcione neste assistente.",
7939
+ "scan_blocked": "A análise bloqueia esta instalação.",
7940
+ "review_required": "Aprove-a em Revisão primeiro.",
7941
+ "approval_stale": "A aprovação dela não cobre este nome: revise-a de novo.",
7942
+ "destination_unreadable": "O que está no destino não pode ser lido por inteiro."
7943
+ },
7944
+ "transform": "Alterado só para este assistente:",
7945
+ "refresh": {
7946
+ "automatic": "O {runtime} a pega sozinho.",
7947
+ "reload-skills": "{runtime}: rode /reload-skills nas sessões já abertas.",
7948
+ "new-session": "{runtime}: inicie uma nova sessão para ter certeza de que ele a vê.",
7949
+ "unknown": "{runtime}: veja a documentação dele.",
7950
+ "panel-reload": "{runtime}: o painel do SynaBun já a lista; num terminal, abra uma nova sessão do {runtime} para vê-la.",
7951
+ "terminal-only": "{runtime}: um OpenCode aberto num terminal lê a pasta do Claude Code (nova sessão); o painel do OpenCode do SynaBun e um Assistente OpenCode não: instale para o OpenCode para esses.",
7952
+ "not-installed": "O {runtime} não está instalado neste computador: a skill fica na pasta dele, e o {runtime} a encontra quando for instalado."
7953
+ },
7954
+ "result": {
7955
+ "committed": "Instalada",
7956
+ "skipped": "Não instalada",
7957
+ "needs-confirmation": "Precisa da sua confirmação",
7958
+ "failed": "Falhou"
7959
+ },
7960
+ "exportNeedsVersion": "Salve uma versão para exportá-la.",
7961
+ "exportRestart": "Reinicie o SynaBun para exportar versões da biblioteca.",
7962
+ "exportSkill": "Arquivo .skill",
7963
+ "exportClaude": "Envio para o Claude.ai",
7964
+ "checkClaude": "Verificar para o Claude.ai",
7965
+ "exportHelp": "Um pacote é o que Importar aceita de volta. Um arquivo .skill guarda a pasta. O envio para o Claude.ai é um ZIP da pasta como o Claude.ai a lê.",
7966
+ "planFailed": "Não foi possível fazer o plano: {error}",
7967
+ "planChanged": "O que seria instalado mudou desde que o plano foi mostrado: aqui está o novo plano.",
7968
+ "installFailed": "Não instalada: {error}",
7969
+ "verified": "Verificado.",
7970
+ "verifyFailed": "Não foi possível verificar: {error}",
7971
+ "rollbackTitle": "Reverter esta instalação?",
7972
+ "removeTitle": "Remover esta instalação?",
7973
+ "rollbackBody": "O que estava lá antes desta instalação volta. Um backup da pasta atual é mantido.",
7974
+ "removeBody": "A pasta que o SynaBun instalou é removida. Um backup é mantido.",
7975
+ "undoFailed": "Não foi possível fazer isso: {error}",
7976
+ "changedSinceTitle": "A pasta mudou desde a instalação",
7977
+ "changedSinceBody": "Alguém a alterou depois que o SynaBun a instalou. Continuar com ela como está agora? Um backup é mantido.",
7978
+ "changedSinceConfirm": "Continuar",
7979
+ "rolledBack": "Revertida.",
7980
+ "removed": "Removida.",
7981
+ "checking": "Verificando…",
7982
+ "claudeProblems": "Para o Claude.ai: {errors} problemas, {warnings} avisos.",
7983
+ "claudeOk": "O Claude.ai lê esta skill como ela está.",
7984
+ "checkFailed": "Não foi possível verificar: {error}",
7985
+ "installFor": "Instalar para",
7986
+ "scope": "Escopo",
7987
+ "scopeAll": "Todos os projetos",
7988
+ "scopeProject": "Um projeto",
7989
+ "noProjects": "Nenhum projeto está registrado no SynaBun.",
7990
+ "extraPicked": "Também escolhido em Avançado: {targets}",
7991
+ "installedTitle": "Instalada agora",
7992
+ "advancedTitle": "Avançado: versão, contas, projetos, pastas",
7993
+ "versionHelp": "A versão aprovada é escolhida por padrão; candidata e melhor são marcadas em Versões.",
7994
+ "statusInstalled": "Instalada para {where}.",
7995
+ "statusOutdated": "Instalada para {where}; a versão escolhida é mais nova: Atualizar a substitui (um backup é mantido).",
7996
+ "statusApprovedVersion": "A versão aprovada está escolhida.",
7997
+ "statusNone": "Ainda não instalada em lugar nenhum.",
7998
+ "pickOne": "Escolha pelo menos um assistente.",
7999
+ "checkingPlan": "Verificando o que isso faria…",
8000
+ "line": {
8001
+ "create": "Vai criar",
8002
+ "identical": "Já está lá, nada a gravar:",
8003
+ "replaceOwnedBefore": "Vai substituir a instalação do SynaBun em",
8004
+ "replaceOwnedAfter": "(um backup é mantido)",
8005
+ "replaceModified": "foi alterada desde que o SynaBun a instalou: Instalar pergunta antes de substituí-la (um backup é mantido).",
8006
+ "replaceUnowned": "não foi instalada pelo SynaBun: Instalar pergunta antes de substituí-la (um backup é mantido).",
8007
+ "blocked": "Não pode ser instalada: {reason}",
8008
+ "scanAsk": "A análise encontrou coisas para revisar: Instalar as mostra primeiro."
8009
+ },
8010
+ "outcomeHelp": "Verifique, reverta ou remova em Instalada agora.",
8011
+ "bar": {
8012
+ "install": "Instalar",
8013
+ "update": "Atualizar",
8014
+ "installed": "Instalada",
8015
+ "checking": "Verificando…",
8016
+ "installing": "Instalando…",
8017
+ "count": "{label} · {count}"
8018
+ },
8019
+ "confirmTitle": "Antes de instalar",
8020
+ "confirmBodyReplace": "Já há algo no destino. Substituir? Um backup é mantido, e Reverter o traz de volta.",
8021
+ "confirmBodyScan": "A análise encontrou coisas para revisar nos arquivos a instalar. Leia, depois instale se concordar.",
8022
+ "confirmWhy": {
8023
+ "modified": "foi alterada desde que o SynaBun a instalou.",
8024
+ "unowned": "não foi instalada pelo SynaBun."
8025
+ },
8026
+ "confirmReplaced": "Ela é substituída; um backup é mantido.",
8027
+ "confirmScanLine": "a análise encontrou isto nos arquivos a instalar:",
8028
+ "confirmGo": "Substituir e instalar",
8029
+ "confirmGoScan": "Instalar mesmo assim",
8030
+ "doneFor": "Instalada para {where}.",
8031
+ "doneSome": "Instalada para {where}; não para {failed}.",
8032
+ "doneNone": "Não instalada: {reason}",
8033
+ "blockedFor": "{target} não pode ser instalada: {reason}",
8034
+ "notInstalledBlocked": "Não instalada: veja o motivo abaixo.",
8035
+ "busyElsewhere": "Uma instalação desta skill já está a caminho.",
8036
+ "retryPlan": "Tentar de novo",
8037
+ "unavailable": {
8038
+ "off": "a pasta compartilhada está desligada em Configurações",
8039
+ "missing": "não há pasta para ele neste computador"
8040
+ },
8041
+ "viaClaudeHelp": "Um OpenCode no terminal lê a pasta de skills do Claude Code, então uma skill instalada para o Claude Code chega a ele por lá. O painel do OpenCode do próprio SynaBun e um Assistente OpenCode iniciam com OPENCODE_DISABLE_CLAUDE_CODE=1 e não a leem: marque o OpenCode para instalar a cópia que eles veem.",
8042
+ "eligibility": {
8043
+ "disabled": "O {runtime} a desativou nas configurações: {reason}",
8044
+ "unknown": "{runtime}: as configurações não puderam ser lidas ({reason}).",
8045
+ "reason": {
8046
+ "codex-config": "{file} tem uma tabela [[skills.config]] com enabled = false para ela.",
8047
+ "claude-override": "{file} tem skillOverrides \"{rule}\": \"off\".",
8048
+ "claude-deny": "{file} a nega em permissions.deny (\"{rule}\").",
8049
+ "opencode-permission": "{file} tem em permissions uma regra de skill para \"{pattern}\": deny.",
8050
+ "unreadable": "{file} não pode ser lido por inteiro.",
8051
+ "invalid-json": "{file} não é JSON válido.",
8052
+ "other": "{file}"
8053
+ }
8054
+ },
8055
+ "enableFor": "Ativar para {runtime}",
8056
+ "enabled": "Ativada para {runtime}: {file} foi alterado (um backup está em {backup}).",
8057
+ "enableNothing": "O {runtime} já não a desativa: nada foi alterado.",
8058
+ "enableFailed": "Não ativada para {runtime}: {error}",
8059
+ "enableDenyAllTitle": "O {runtime} nega todas as skills",
8060
+ "enableDenyAllBody": "{file} nega todas as skills (uma regra de skill para \"*\": deny). Adicionar depois dela uma regra que permite esta skill? Um backup é guardado; todas as outras skills continuam negadas.",
8061
+ "enableDenyAllGo": "Afrouxar para esta skill",
8062
+ "overlapOne": "O {runtime} também vê uma skill /{name} em {path}.",
8063
+ "overlapMany": "{runtimes} também veem uma skill /{name} em {path}."
8064
+ },
8065
+ "review": {
8066
+ "author": {
8067
+ "owner": "Você",
8068
+ "assistant": "Assistente do SynaBun",
8069
+ "agent": "Um agente"
8070
+ },
8071
+ "kind": {
8072
+ "new": "Skill nova",
8073
+ "change": "Mudança",
8074
+ "update": "Atualização"
8075
+ },
8076
+ "state": {
8077
+ "pending": "Esperando por você",
8078
+ "changes_requested": "Mudanças pedidas",
8079
+ "approved": "Aprovada, não instalada",
8080
+ "publishing": "Instalando",
8081
+ "published": "Instalada",
8082
+ "partial": "Instalada em parte",
8083
+ "publish_failed": "A instalação falhou",
8084
+ "rejected": "Rejeitada",
8085
+ "withdrawn": "Retirada"
8086
+ },
8087
+ "assumed": "Suposição: {text}",
8088
+ "installsAs": "Instala como",
8089
+ "forTargets": "Para: {targets}",
8090
+ "lintErrors": {
8091
+ "one": "{count} problema para os destinos dela",
8092
+ "other": "{count} problemas para os destinos dela"
8093
+ },
8094
+ "lintOk": "Nenhum problema para os destinos dela",
8095
+ "lintWarnings": {
8096
+ "one": "{count} aviso",
8097
+ "other": "{count} avisos"
8098
+ },
8099
+ "scan": {
8100
+ "not-scanned": "Não analisada",
8101
+ "error": "A análise falhou: ela não pode ser aprovada",
8102
+ "blocked": {
8103
+ "one": "A análise a bloqueia ({count} achado)",
8104
+ "other": "A análise a bloqueia ({count} achados)"
8105
+ },
8106
+ "clean": "Nada encontrado nos arquivos analisados",
8107
+ "incomplete": {
8108
+ "one": "{count} achado; parte dela não pôde ser lida",
8109
+ "other": "{count} achados; parte dela não pôde ser lida"
8110
+ },
8111
+ "review": {
8112
+ "one": "{count} achado para revisar",
8113
+ "other": "{count} achados para revisar"
8114
+ },
8115
+ "findings": {
8116
+ "one": "{count} achado",
8117
+ "other": "{count} achados"
8118
+ }
8119
+ },
8120
+ "findings": {
8121
+ "one": "{count} achado",
8122
+ "other": "{count} achados"
8123
+ },
8124
+ "severity": {
8125
+ "critical": "Crítico",
8126
+ "high": "Alto",
8127
+ "medium": "Médio",
8128
+ "low": "Baixo"
8129
+ },
8130
+ "authorityAdds": "Adiciona {what}: {items}",
8131
+ "authorityRemoves": "Não tem mais {what}: {items}",
8132
+ "authority": {
8133
+ "scripts": "scripts",
8134
+ "binaries": "arquivos que não são texto",
8135
+ "dynamicContext": "comandos executados ao carregar",
8136
+ "hooks": "hooks de sessão",
8137
+ "toolGrants": "ferramentas pré-aprovadas",
8138
+ "domains": "endereços da web",
8139
+ "sensitive": "leituras de dados privados",
8140
+ "persistentWrites": "mudanças duradouras de configuração",
8141
+ "installers": "instalações de software"
8142
+ },
8143
+ "authorityTitle": "O que ela pode fazer que a versão aprovada não podia:",
8144
+ "filesChanged": {
8145
+ "one": "{count} arquivo alterado",
8146
+ "other": "{count} arquivos alterados"
8147
+ },
8148
+ "showFiles": "Mostrar os arquivos",
8149
+ "loadingDiff": "Lendo as mudanças…",
8150
+ "yourNote": "Sua observação: {text}",
8151
+ "requestChanges": "Pedir mudanças",
8152
+ "reject": "Rejeitar",
8153
+ "open": "Abrir no espaço de trabalho dela",
8154
+ "libraryInstalls": {
8155
+ "one": "{count} instalação da biblioteca",
8156
+ "other": "{count} instalações da biblioteca"
8157
+ },
8158
+ "fromSynabun": "Vem com o SynaBun",
8159
+ "updateBody": "O SynaBun traz uma {name} mais nova do que a cópia instalada aqui. Leia as mudanças, depois atualize (um backup da cópia é mantido) ou mantenha a sua.",
8160
+ "updateRuntimes": "Instalada para {runtimes}",
8161
+ "reviewChanges": "Revisar as mudanças",
8162
+ "update": "Atualizar",
8163
+ "keepMine": "Manter a minha",
8164
+ "title": "Revisão",
8165
+ "subtitle": "O que o Assistente fez e as atualizações que o SynaBun traz esperam aqui. Nada é instalado até você aprovar.",
8166
+ "filterLabel": "Mostrar",
8167
+ "filter": {
8168
+ "waiting": "Esperando",
8169
+ "all": "Tudo",
8170
+ "decided": "Decididas"
8171
+ },
8172
+ "updatesTitle": {
8173
+ "one": "{count} atualização do SynaBun",
8174
+ "other": "{count} atualizações do SynaBun"
8175
+ },
8176
+ "decidedTitle": "Decididas",
8177
+ "waitingTitle": {
8178
+ "one": "{count} envio",
8179
+ "other": "{count} envios"
8180
+ },
8181
+ "emptyTitle": "Nada esperando",
8182
+ "emptyBody": "Quando o Assistente do SynaBun cria ou altera uma skill, ela aparece aqui para você aprovar, pedir mudanças ou rejeitar. As atualizações que o SynaBun traz aparecem aqui também.",
8183
+ "diffFailed": "Não foi possível ler as mudanças: {error}",
8184
+ "partialDiff": "Só o SKILL.md foi comparado: reinicie o SynaBun para comparar todos os arquivos.",
8185
+ "updateDiffTitle": "O que atualizar {name} muda",
8186
+ "send": "Enviar",
8187
+ "reasonRequired": "Diga o que deve mudar.",
8188
+ "rejectTitle": "Rejeitar {name}",
8189
+ "changesTitle": "Pedir mudanças em {name}",
8190
+ "rejectPrompt": "Por quê (opcional; o Assistente lê):",
8191
+ "changesPrompt": "O que deve mudar (o Assistente lê):",
8192
+ "decided": {
8193
+ "approve": "{name} aprovada. Instale-a pelo cartão dela ou em Publicar.",
8194
+ "request_changes": "Mudanças pedidas para {name}.",
8195
+ "reject": "{name} rejeitada."
8196
+ },
8197
+ "decideFailed": "Não foi possível enviar a decisão: {error}",
8198
+ "approveInstall": "Aprovar e instalar",
8199
+ "approveOnly": "Só aprovar",
8200
+ "installNow": "Instalar",
8201
+ "openPublish": "Escolher onde…",
8202
+ "installing": "Instalando…",
8203
+ "notInstalledHelp": "Escolher onde… abre Publicar, onde o plano diz mais.",
8204
+ "installsFor": "Instala para {targets}",
8205
+ "fallbackInstalled": "(onde já está instalada)",
8206
+ "fallbackDefault": "(nada indicado: Claude Code para todos os projetos)",
8207
+ "targetUnavailable": "{target} não está disponível aqui ({reason}): fica de fora.",
8208
+ "noDestination": "Nenhum dos destinos indicados está disponível aqui. Escolha onde em Publicar.",
8209
+ "approveOnlyPrimary": "Aprovar",
8210
+ "fallbackAssistants": "(seus assistentes, de Configurações → Skills)",
8211
+ "destTilesLabel": "Onde instala, por runtime",
8212
+ "destTileOn": "{runtime}: instala aqui",
8213
+ "destTileOff": "{runtime}: não escolhido"
8214
+ },
8215
+ "create": {
8216
+ "title": "Criar uma skill",
8217
+ "guest": "Só o host cria skills.",
8218
+ "promptLabel": "Descreva a skill",
8219
+ "promptPlaceholder": "Descreva o que a skill deve fazer e quando deve ser usada, ex.: \"Escrever notas de versão a partir dos pull requests mesclados desde a última tag, no estilo do nosso CHANGELOG\"",
8220
+ "sourcesLabel": "Fontes",
8221
+ "useAsSource": "Usar como fonte",
8222
+ "source": {
8223
+ "conversation": "Esta conversa",
8224
+ "url": "URL",
8225
+ "repo": "Repositório",
8226
+ "memory": "Memória",
8227
+ "import": "Uma skill existente"
8228
+ },
8229
+ "draftWithAi": "Rascunhar com IA",
8230
+ "blankTitle": "Começar sem IA",
8231
+ "nameLabel": "Nome",
8232
+ "namePlaceholder": "notas-de-versao",
8233
+ "nameHelp": "Letras minúsculas, dígitos e hífens: você a chama como {slug}.",
8234
+ "name": {
8235
+ "required": "Dê um nome a ela.",
8236
+ "too-long": "No máximo 64 caracteres.",
8237
+ "format": "Use letras minúsculas, dígitos e hífens simples.",
8238
+ "shipped": "O SynaBun traz uma skill com este nome: escolha outro.",
8239
+ "taken": "Já existe algo com este nome: instalar os dois causaria conflito."
8240
+ },
8241
+ "kindLabel": "Tipo",
8242
+ "kind": {
8243
+ "skill": "Skill",
8244
+ "agent": "Agente",
8245
+ "command": "Comando · legado"
8246
+ },
8247
+ "kindHelp": {
8248
+ "skill": "Uma pasta com SKILL.md que o Claude Code, o Codex e o OpenCode carregam. A escolha comum.",
8249
+ "agent": "Um subagente a quem o Claude Code delega, com contexto próprio. Um arquivo.",
8250
+ "command": "Um arquivo de comando de barra do Claude Code. As skills os substituem; mantido para configurações antigas."
8251
+ },
8252
+ "layoutLabel": "Começar de",
8253
+ "layout": {
8254
+ "skill": {
8255
+ "blank": {
8256
+ "name": "Em branco",
8257
+ "desc": "Nome, descrição e um título"
8258
+ },
8259
+ "steps": {
8260
+ "name": "Passos",
8261
+ "desc": "Passos numerados sobre o que o usuário digita"
8262
+ },
8263
+ "router": {
8264
+ "name": "Roteador",
8265
+ "desc": "Seções escolhidas pela primeira palavra"
8266
+ },
8267
+ "references": {
8268
+ "name": "Com referências",
8269
+ "desc": "SKILL.md mais references/guide.md"
8270
+ },
8271
+ "script": {
8272
+ "name": "Com um script",
8273
+ "desc": "SKILL.md mais scripts/run.sh"
8274
+ }
8275
+ },
8276
+ "agent": {
8277
+ "blank": {
8278
+ "name": "Em branco",
8279
+ "desc": "Um nome, uma descrição, um papel curto"
8280
+ },
8281
+ "specialist": {
8282
+ "name": "Especialista",
8283
+ "desc": "Um modelo e ferramentas de leitura"
8284
+ },
8285
+ "researcher": {
8286
+ "name": "Pesquisador",
8287
+ "desc": "Ferramentas de pesquisa em código e na web"
8288
+ }
8289
+ },
8290
+ "command": {
8291
+ "blank": {
8292
+ "name": "Em branco",
8293
+ "desc": "Uma descrição e instruções"
8294
+ },
8295
+ "analysis": {
8296
+ "name": "Análise",
8297
+ "desc": "Ler um alvo e relatar"
8298
+ },
8299
+ "workflow": {
8300
+ "name": "Fluxo de trabalho",
8301
+ "desc": "Planejar, confirmar, fazer, verificar"
8302
+ }
8303
+ }
8304
+ },
8305
+ "descriptionLabel": "Descrição",
8306
+ "descriptionPlaceholder": "O que ela faz, e quando usar",
8307
+ "descriptionHelp": "Gravada no frontmatter. Os modelos a leem para decidir quando usar a skill: diga o quê e quando.",
8308
+ "whereSkill": "Ela começa como rascunho na biblioteca do SynaBun e só chega ao Claude Code, ao Codex ou ao OpenCode quando você a publica.",
8309
+ "whereLabel": "Onde",
8310
+ "whereGlobal": {
8311
+ "agent": "Todos os projetos (~/.claude/agents)",
8312
+ "command": "Todos os projetos (~/.claude/commands)"
8313
+ },
8314
+ "whereProject": "Um projeto",
8315
+ "createButton": {
8316
+ "skill": "Criar skill",
8317
+ "agent": "Criar agente",
8318
+ "command": "Criar comando"
8319
+ },
8320
+ "paste": "Colar um SKILL.md…",
8321
+ "import": "Importar…",
8322
+ "explain": "Você recebe uma pasta de skill: SKILL.md, mais referências ou scripts só quando ajudam, verificada enquanto você escreve. Nada chega ao Claude Code, ao Codex ou ao OpenCode até você publicar.",
8323
+ "examplesTitle": "Ideias",
8324
+ "example1": "\"Escrever mensagens de Conventional Commit a partir do diff preparado\"",
8325
+ "example2": "\"Uma lista de verificação para preparar uma versão do SynaBun, a partir do CHANGELOG.md\"",
8326
+ "example3": "\"Revisar um pull request em busca de problemas de segurança antes de mesclar\"",
8327
+ "created": "{name} criada.",
8328
+ "failed": "Não foi possível criar: {error}",
8329
+ "pasteLabel": "SKILL.md",
8330
+ "pasteTitle": "Colar um SKILL.md",
8331
+ "pasteConfirm": "Adicionar à biblioteca",
8332
+ "pasteEmpty": "Cole o arquivo primeiro.",
8333
+ "ai": {
8334
+ "title": "Rascunhar com IA",
8335
+ "help": "Um agente rascunha o pacote inteiro a partir das suas palavras e fontes; o SynaBun o verifica e o coloca em Revisão. Nada é instalado até você publicar.",
8336
+ "restart": "Rascunhar com IA precisa que o SynaBun reinicie: esta página é mais nova que o servidor.",
8337
+ "unknown": "Verificando o que este SynaBun consegue fazer…",
8338
+ "draftingUnavailable": "O rascunho precisa de {providers} neste computador: {reason}",
8339
+ "exampleToggle": "Adicionar um exemplo de bom resultado",
8340
+ "exampleLabel": "Um exemplo de bom resultado (opcional)",
8341
+ "examplePlaceholder": "Como deve ser a saída da skill, ou uma resposta antiga de que você gostou",
8342
+ "noSources": "Nenhuma fonte: o rascunho é feito a partir da sua descrição.",
8343
+ "removeSource": "Remover {name}",
8344
+ "full": "No máximo {count} fontes.",
8345
+ "duplicate": "Essa fonte já está aqui.",
8346
+ "added": "{name} adicionada como fonte.",
8347
+ "removed": "{name} removida.",
8348
+ "kind": {
8349
+ "conversation": "Conversa",
8350
+ "url": "Página da web",
8351
+ "repo": "Projeto",
8352
+ "memory": "Memórias",
8353
+ "import": "Skill"
8354
+ },
8355
+ "editorTitle": {
8356
+ "conversation": "Escolha uma sessão",
8357
+ "url": "Uma página da web",
8358
+ "repo": "Um projeto registrado",
8359
+ "memory": "Memórias",
8360
+ "import": "Uma skill existente como ponto de partida"
8361
+ },
8362
+ "conv": {
8363
+ "provider": "De",
8364
+ "project": "Projeto",
8365
+ "anyProject": "Todos os projetos",
8366
+ "search": "Buscar sessões",
8367
+ "title": "Sessões",
8368
+ "loading": "Carregando sessões…",
8369
+ "none": "Nenhuma sessão encontrada.",
8370
+ "failed": "Não foi possível ler as sessões: {error}",
8371
+ "messages": {
8372
+ "one": "{count} mensagem",
8373
+ "other": "{count} mensagens"
8374
+ },
8375
+ "use": "Usar esta sessão",
8376
+ "pick": "Escolha uma sessão primeiro.",
8377
+ "restart": "As sessões aparecem depois que o SynaBun reiniciar."
8378
+ },
8379
+ "url": {
8380
+ "label": "Endereço da página",
8381
+ "help": "O SynaBun a lê com o próprio navegador antes de o agente começar, como dados: nada na página é seguido como instrução.",
8382
+ "add": "Adicionar a página",
8383
+ "invalid": "Escreva um endereço que comece com http:// ou https://, sem usuário nem senha.",
8384
+ "unavailable": "O navegador do SynaBun não consegue abrir páginas agora: {reason}"
8385
+ },
8386
+ "repo": {
8387
+ "label": "Projeto",
8388
+ "paths": "Arquivos ou pastas para ler primeiro (um por linha, opcional)",
8389
+ "help": "O SynaBun lê a árvore de arquivos, o README, a documentação e os manifestos, só para leitura: nunca segredos, arquivos de lock ou saídas de build, e nada é alterado.",
8390
+ "add": "Adicionar o projeto",
8391
+ "none": "Nenhum projeto registrado.",
8392
+ "choose": "Escolha um projeto.",
8393
+ "pathsInvalid": "Até {count} caminhos, relativos ao projeto, sem \"..\"."
8394
+ },
8395
+ "memory": {
8396
+ "query": "O que lembrar",
8397
+ "placeholder": "processo de lançamento",
8398
+ "project": "Projeto de memória (opcional)",
8399
+ "help": "As memórias do SynaBun que combinam, com seus ids, como dados.",
8400
+ "add": "Adicionar memórias",
8401
+ "empty": "Diga o que lembrar."
8402
+ },
8403
+ "import": {
8404
+ "help": "Os arquivos dela são o ponto de partida. Uma skill da biblioteca ganha uma nova versão para revisão; um arquivo de pacote vira uma skill nova.",
8405
+ "library": "Uma skill da biblioteca",
8406
+ "chooseSkill": "Escolha uma skill.",
8407
+ "or": "Ou um arquivo",
8408
+ "file": "Um arquivo de pacote…",
8409
+ "useSkill": "Usar esta skill",
8410
+ "notSkill": "Esse arquivo não é um pacote de skill do SynaBun.",
8411
+ "failed": "Não foi possível usar o arquivo: {error}"
8412
+ },
8413
+ "options": {
8414
+ "title": "Opções",
8415
+ "name": "Nome (opcional)",
8416
+ "nameHelp": "Deixe vazio e o agente escolhe um.",
8417
+ "model": "Rascunhada por",
8418
+ "minutes": "Tempo de trabalho",
8419
+ "minutesValue": "{count} min",
8420
+ "runtimes": "Para",
8421
+ "route": "Sua rota de Programação: {target}",
8422
+ "fallback": "Claude Code (o modelo padrão dele)",
8423
+ "providerDefault": "{provider}: o modelo padrão dele",
8424
+ "draftsOn": "O rascunho roda em {providers}; o Claude Code é o padrão. O worker fica preso à pasta de rascunho: não escreve em nenhum outro lugar e não tem web nem ferramentas MCP.",
8425
+ "draftsNone": "Nenhum provedor que faz rascunhos pode iniciar neste computador agora.",
8426
+ "draftsOnOnly": "Aqui o rascunho roda em {providers}. O worker fica preso à pasta de rascunho: não escreve em nenhum outro lugar e não tem web nem ferramentas MCP.",
8427
+ "providerUnavailable": "{provider}: {reason}",
8428
+ "providerOff": "{provider}: indisponível agora ({reason})",
8429
+ "providerOffPlain": "{provider}: indisponível agora"
8430
+ },
8431
+ "problem": {
8432
+ "prompt": "Descreva a skill ou adicione uma fonte.",
8433
+ "name": "Um nome usa letras minúsculas, dígitos e hífens simples.",
8434
+ "url": "Uma das páginas tem um endereço que não pode ser usado.",
8435
+ "repo": "Um dos projetos não pode ser usado: confira os caminhos.",
8436
+ "memory": "Uma das fontes de memória não tem o que lembrar.",
8437
+ "conversation": "Uma das sessões não pode ser usada.",
8438
+ "import": "Uma das skills não pode ser usada.",
8439
+ "long": "Isso é maior do que um pedido pode ser.",
8440
+ "provider": "O rascunho roda só no Claude Code.",
8441
+ "targets": "Um dos lugares de instalação não pode ser usado (um projeto precisa estar registrado).",
8442
+ "other": "O pedido não pode ser enviado assim."
8443
+ },
8444
+ "error": {
8445
+ "needs_browser": "Uma página da web precisa do navegador do SynaBun, que não conseguiu abri-la.",
8446
+ "needs_input": "O agente precisa de uma resposta antes de rascunhar.",
8447
+ "worker_blocked": "O agente foi bloqueado.",
8448
+ "worker_failed": "O agente parou sem rascunhar nada (o que ele disse está abaixo).",
8449
+ "worker_ended": "O agente parou antes de terminar o rascunho.",
8450
+ "draft_invalid": "O rascunho ainda tinha problemas depois de uma rodada de correções.",
8451
+ "draft_unchanged": "O agente devolveu a skill como ela já era.",
8452
+ "source_failed": "Uma fonte não pôde ser lida.",
8453
+ "source_not_found": "Uma fonte não foi encontrada.",
8454
+ "source_empty": "Uma fonte não tinha nada para ler.",
8455
+ "source_unavailable": "Este servidor não consegue ler uma das fontes.",
8456
+ "dispatch_failed": "O agente não conseguiu começar.",
8457
+ "drafting_unavailable": "Os agentes do Assistente ainda não estão rodando: tente de novo em instantes.",
8458
+ "too_many_creations": "Outras skills estão sendo rascunhadas: espere uma terminar ou cancele-a.",
8459
+ "interrupted": "O SynaBun parou enquanto isto rodava.",
8460
+ "invalid_request": "O pedido não era válido.",
8461
+ "budget_exceeded": "O agente chegou ao limite de gasto e foi parado.",
8462
+ "draft_unsafe": "A pasta de rascunho tinha um link: nada nela foi usado.",
8463
+ "provider_unsupported": "O rascunho roda só no Claude Code.",
8464
+ "request_too_long": "O pedido é longo demais para o agente que rascunha: encurte-o.",
8465
+ "other": "Não foi possível fazer o rascunho."
8466
+ },
8467
+ "job": {
8468
+ "loading": "Lendo o rascunho…",
8469
+ "back": "Voltar ao formulário",
8470
+ "backWhile": "Voltar ao formulário (ele continua)",
8471
+ "stepsLabel": "Etapas",
8472
+ "title": {
8473
+ "active": "Rascunhando {name}",
8474
+ "done": "{name} está em Revisão",
8475
+ "drafted": "{name} está rascunhada",
8476
+ "failed": "Não foi possível rascunhar {name}",
8477
+ "cancelled": "{name} foi cancelada",
8478
+ "interrupted": "{name} foi interrompida"
8479
+ },
8480
+ "step": {
8481
+ "sources": "Fontes",
8482
+ "drafting": "Rascunho",
8483
+ "checking": "Verificação",
8484
+ "review": "Revisão"
8485
+ },
8486
+ "stepState": {
8487
+ "done": "feito",
8488
+ "active": "em andamento",
8489
+ "failed": "parou aqui",
8490
+ "waiting": "ainda não",
8491
+ "skipped": "não pedido"
8492
+ },
8493
+ "cancel": "Cancelar",
8494
+ "cancelling": "Cancelando…",
8495
+ "cancelFailed": "Não foi possível cancelar: {error}",
8496
+ "worker": "Agente",
8497
+ "byRoute": "(sua rota de Programação)",
8498
+ "browser": "com o navegador do SynaBun",
8499
+ "time": "Tempo",
8500
+ "cost": "{cost} até agora",
8501
+ "spent": "{cost} gastos",
8502
+ "cut": "cortada para caber",
8503
+ "files": "Escrito até agora",
8504
+ "noFiles": "Nada escrito ainda.",
8505
+ "activity": "O que o agente está fazendo",
8506
+ "lint": "Verificações: {errors} erros, {warnings} avisos",
8507
+ "tests": "Prompts de teste: {tasks} tarefas, {positive} que devem acioná-la, {nearMiss} quase acertos",
8508
+ "noTests": "Sem prompts de teste (evals/evals.json)",
8509
+ "assumptions": {
8510
+ "one": "{count} suposição",
8511
+ "other": "{count} suposições"
8512
+ },
8513
+ "warnings": {
8514
+ "one": "{count} aviso",
8515
+ "other": "{count} avisos"
8516
+ },
8517
+ "inReview": "Ela espera em Revisão: aprove-a lá e depois publique nos assistentes que escolher.",
8518
+ "notInReview": "É um rascunho na biblioteca: abra-o e publique quando estiver pronto.",
8519
+ "openReview": "Abrir em Revisão",
8520
+ "openDraft": "Abrir o rascunho",
8521
+ "another": "Rascunhar outra",
8522
+ "question": "O agente perguntou: {question}",
8523
+ "partial": "O que ele escreveu fica guardado como o rascunho {name}.",
8524
+ "openPartial": "Abrir",
8525
+ "retry": "Tentar de novo",
8526
+ "editRetry": "Editar e tentar de novo",
8527
+ "retryFailed": "Não foi possível começar de novo: {error}",
8528
+ "gone": "Não foi possível ler esse rascunho: {error}",
8529
+ "started": "Rascunho iniciado."
8530
+ },
8531
+ "recent": {
8532
+ "title": "Rascunhadas com IA",
8533
+ "failed": "Não foi possível ler os rascunhos: {error}",
8534
+ "state": {
8535
+ "queued": "Esperando",
8536
+ "gathering": "Lendo fontes",
8537
+ "drafting": "Rascunhando",
8538
+ "checking": "Verificando",
8539
+ "submitting": "Indo para Revisão",
8540
+ "done": "Em Revisão",
8541
+ "drafted": "Rascunhada",
8542
+ "failed": "Falhou",
8543
+ "cancelled": "Cancelada",
8544
+ "interrupted": "Interrompida"
8545
+ }
8546
+ }
8547
+ }
8548
+ },
8549
+ "customize": {
8550
+ "nameLabel": "Nome da sua cópia",
8551
+ "title": "Personalizar uma cópia de {name}",
8552
+ "explain": "Cada arquivo dela é copiado para a biblioteca do SynaBun como uma skill nova sua, com só o nome alterado. A original fica como está.",
8553
+ "confirm": "Fazer a cópia",
8554
+ "cannot": {
8555
+ "binary": "Ela tem arquivos que não são texto, que este servidor não consegue copiar: reinicie o SynaBun e tente de novo.",
8556
+ "unreadable": "O SKILL.md dela não pode ser lido.",
8557
+ "restart": "Os outros arquivos dela só podem ser lidos por um servidor mais novo: reinicie o SynaBun e tente de novo.",
8558
+ "truncated": "Ela tem mais arquivos do que o SynaBun lista, então uma cópia perderia alguns.",
8559
+ "yaml": "O frontmatter dela tem erros, então o nome não pôde ser definido: corrija-o primeiro."
8560
+ },
8561
+ "done": "{name} criada, a sua cópia.",
8562
+ "nameInUse": "Uma skill chamada {name} já está instalada: renomeie uma delas antes de publicar.",
8563
+ "failed": "Não foi possível fazer a cópia: {error}"
8564
+ },
8565
+ "import": {
8566
+ "guest": "Só o host importa skills.",
8567
+ "serverUnknown": "Não foi possível ler o que este servidor sabe fazer, então nada foi importado: tente de novo.",
8568
+ "tooLarge": "Esse arquivo é maior do que um pacote de skill pode ser (24 MB).",
8569
+ "notJson": "Esse arquivo não é um pacote de skill (não é JSON).",
8570
+ "notBundle": "Esse arquivo não é um pacote de skill do SynaBun.",
8571
+ "chooseProject": "Escolha um projeto…",
8572
+ "where": "Para onde vai",
8573
+ "scopeGlobal": "Todos os projetos (~/.claude/)",
8574
+ "scopeProject": "Um projeto",
8575
+ "project": "Projeto",
8576
+ "chooseProjectError": "Escolha o projeto para onde ela vai.",
8577
+ "title": "Importar {kind} \"{name}\"",
8578
+ "intro": {
8579
+ "one": "De {file}: {count} arquivo. Ele é verificado antes; nada é instalado até você confirmar.",
8580
+ "other": "De {file}: {count} arquivos. Eles são verificados antes; nada é instalado até você confirmar."
8581
+ },
8582
+ "check": "Verificar",
8583
+ "refusedTitle": "Este pacote não pode ser importado",
8584
+ "refusedIntro": "Nada foi gravado. O que há de errado com ele:",
8585
+ "failed": "A importação falhou: {error}",
8586
+ "reviewTitle": "Revise \"{name}\" antes de instalá-la",
8587
+ "discard": "Descartar",
8588
+ "install": "Instalar",
8589
+ "confirmReviewed": "Confirme que você revisou o que ela pode fazer.",
8590
+ "confirmReplace": "Confirme que os arquivos de lá podem ser substituídos (um backup é mantido) ou descarte a importação.",
8591
+ "done": "{name} importada.",
8592
+ "goesTo": "Vai para",
8593
+ "files": "Arquivos",
8594
+ "fileCount": {
8595
+ "one": "{count} arquivo ({size})",
8596
+ "other": "{count} arquivos ({size})"
8597
+ },
8598
+ "digest": "Resumo (digest)",
8599
+ "showFiles": "Mostrar os arquivos",
8600
+ "executable": "executável",
8601
+ "leftOut": "{path}: deixado de fora ({reason})",
8602
+ "skillExists": "Uma skill chamada \"{name}\" já está lá. Ela não é substituída: exclua-a ou renomeie-a primeiro.",
8603
+ "replaceBox": {
8604
+ "one": "Substituir o arquivo que já está lá ({files}); um backup é mantido",
8605
+ "other": "Substituir os {count} arquivos que já estão lá ({files}); um backup é mantido"
8606
+ },
8607
+ "checks": "Verificações: {errors} problemas, {warnings} avisos",
8608
+ "checksOk": "Verificações: nenhum problema encontrado",
8609
+ "blockedByProblems": "Ela não pode ser instalada enquanto tiver problemas: um assistente a leria errado.",
8610
+ "scanClean": "nada encontrado no conteúdo analisado",
8611
+ "scanError": "a análise falhou ({error}): ela não pode ser instalada",
8612
+ "scanIncomplete": {
8613
+ "one": "{count} achado; parte dela não pôde ser lida",
8614
+ "other": "{count} achados; parte dela não pôde ser lida"
8615
+ },
8616
+ "scanFindings": {
8617
+ "one": "{count} achado",
8618
+ "other": "{count} achados"
8619
+ },
8620
+ "canDo": "O que ela pode fazer:",
8621
+ "gateBlocked": "bloqueada",
8622
+ "gateReview": "precisa da sua revisão",
8623
+ "fact": {
8624
+ "dynamic": {
8625
+ "one": "Ela executa {count} comando de shell ao carregar, antes de o modelo lê-la.",
8626
+ "other": "Ela executa {count} comandos de shell ao carregar, antes de o modelo lê-la."
8627
+ },
8628
+ "hooks": "Ela registra hooks para o resto da sessão ({events}).",
8629
+ "tools": "Ela pré-aprova {tools} no turno que a usa.",
8630
+ "scripts": {
8631
+ "one": "Ela contém {count} script.",
8632
+ "other": "Ela contém {count} scripts."
8633
+ },
8634
+ "binaries": {
8635
+ "one": "Ela contém {count} arquivo que não é texto.",
8636
+ "other": "Ela contém {count} arquivos que não são texto."
8637
+ },
8638
+ "domains": "Ela cita {domains}."
8639
+ },
8640
+ "reviewedBox": "Revisei o que esta skill pode fazer, para estes arquivos exatos"
8641
+ },
8642
+ "dialog": {
8643
+ "unsavedTitle": "Alterações não salvas",
8644
+ "unsavedFiles": {
8645
+ "one": "{count} arquivo tem alterações não salvas:",
8646
+ "other": "{count} arquivos têm alterações não salvas:"
8647
+ },
8648
+ "andMore": "e mais {count}",
8649
+ "keepForLaterHelp": "\"Guardar para depois\" fecha o Estúdio de Skills e as traz de volta na próxima vez que ele abrir neste navegador.",
8650
+ "cancel": "Cancelar",
8651
+ "discard": "Descartar",
8652
+ "keepForLater": "Guardar para depois",
8653
+ "saveAll": "Salvar tudo",
8654
+ "save": "Salvar",
8655
+ "close": "Fechar",
8656
+ "ok": "OK",
8657
+ "dismiss": "Dispensar",
8658
+ "restoreTitle": "Alterações não salvas de antes",
8659
+ "restoreChanged": "{file} tem alterações não salvas de uma sessão anterior, mas o arquivo mudou desde então. Colocar suas alterações de volta sobre o arquivo como está agora, ou descartá-las?",
8660
+ "restoreDrop": "Descartar minhas alterações",
8661
+ "restorePut": "Colocar minhas alterações de volta",
8662
+ "keepEditing": "Continuar editando",
8663
+ "loadTheirs": "Carregar a outra, descartar a minha",
8664
+ "overwriteMine": "Salvar a minha por cima",
8665
+ "recreate": "Criar de novo",
8666
+ "conflictTitle": "O arquivo mudou em outro lugar",
8667
+ "conflictBody": "{file} foi alterado por outra coisa desde que você o abriu. Nada foi gravado.",
8668
+ "goneTitle": "O arquivo foi removido",
8669
+ "goneBody": "{file} foi removido desde que você o abriu. Nada foi gravado.",
8670
+ "stillHere": "Suas alterações continuam nesta aba.",
8671
+ "unsavedOne": "{file} tem alterações não salvas.",
8672
+ "closeWorkspaceKeeps": "Fechar o espaço de trabalho as guarda neste navegador: elas voltam quando você o abrir de novo."
8673
+ },
8674
+ "toast": {
8675
+ "saveConflict": "{file} mudou em outro lugar: abra-o para decidir o que manter.",
8676
+ "saveFailed": "Não foi possível salvar {file}: {error}",
8677
+ "loadFailed": "Não foi possível ler as skills de novo: {error}",
8678
+ "keptMine": "Mantendo a sua {name} como está. A atualização fica oculta até o SynaBun trazer outra versão.",
8679
+ "saveFirst": "Salve ou descarte as alterações abertas primeiro.",
8680
+ "versionUnchanged": "O rascunho é igual à sua versão: nada novo para salvar.",
8681
+ "versionSaved": "Salvo como nova versão.",
8682
+ "versionFailed": "Não foi possível salvar a versão: {error}",
8683
+ "pathCopied": "Caminho copiado.",
8684
+ "nothingToSave": "Nada para salvar.",
8685
+ "savedTypedSince": "{file} salvo: o que você digitou depois ainda não está salvo.",
8686
+ "savedWithProblems": {
8687
+ "one": "{file} salvo, com {count} problema.",
8688
+ "other": "{file} salvo, com {count} problemas."
8689
+ },
8690
+ "savedDraft": "{file} salvo no rascunho. Publique para instalá-lo.",
8691
+ "saved": "{file} salvo.",
8692
+ "reloadFailed": "Não foi possível ler o arquivo de novo: {error}",
8693
+ "changedElsewhere": "{file} foi alterado em outro lugar. O seu próximo salvamento pergunta antes de substituí-lo.",
8694
+ "adopted": "{name} agora está na biblioteca: as versões e a publicação funcionam a partir daqui.",
8695
+ "adoptFailed": "Não foi possível adicioná-la à biblioteca: {error}",
8696
+ "deleted": "{name} excluído.",
8697
+ "deleteFailed": "Não foi possível excluir: {error}",
8698
+ "libraryDeleted": "{name} foi excluída da biblioteca.",
8699
+ "libraryDeleteInstalled": "{name} está instalada: remova as instalações dela em Publicar primeiro.",
8700
+ "libraryDeleteChanged": "{name} mudou desde que foi lida: veja de novo e depois exclua.",
8701
+ "exportUnavailable": "Isto não pode ser exportado daqui."
8702
+ },
8703
+ "status": {
8704
+ "draft": "Rascunho",
8705
+ "review": "Em revisão",
8706
+ "changes": "Mudanças pedidas",
8707
+ "approved": "Aprovada · não instalada",
8708
+ "installed": "Instalada · {where}",
8709
+ "outdated": "Instalada · atualização disponível",
8710
+ "none": "Não instalada",
8711
+ "help": {
8712
+ "draft": "Ainda sem versão: salve o rascunho como versão para instalá-la.",
8713
+ "review": "Um envio espera em Revisão.",
8714
+ "changes": "Você pediu mudanças no envio dela.",
8715
+ "approved": "Aprovada em Revisão, ainda não instalada. Abra Publicar para instalá-la.",
8716
+ "installed": "Instalada pelo SynaBun.",
8717
+ "outdated": "Uma instalação tem uma versão mais antiga do que a escolhida.",
8718
+ "none": "Não instalada em lugar nenhum."
8719
+ }
8720
+ },
8721
+ "notice": {
8722
+ "autoMoved": {
8723
+ "one": "O SynaBun moveu {names} de um arquivo-ponte antigo para uma pasta de skill ao iniciar.",
8724
+ "other": "O SynaBun moveu {count} arquivos-ponte antigos para pastas de skill ao iniciar: {names}."
8725
+ },
8726
+ "autoEarlier": {
8727
+ "one": "O arquivo de {names} era exatamente o que uma versão anterior do SynaBun escreveu, por isso foi movido sem perguntar.",
8728
+ "other": "Os arquivos de {names} eram exatamente o que versões anteriores do SynaBun escreveram, por isso foram movidos sem perguntar."
8729
+ },
8730
+ "autoWhy": "Os arquivos-ponte ficam guardados no registro da mudança; Desfazer os devolve e remove as pastas que a mudança criou.",
8731
+ "autoNotMoved": {
8732
+ "one": "Não movido: {names}.",
8733
+ "other": "Não movidos ({count}): {names}."
8734
+ },
8735
+ "undo": "Desfazer",
8736
+ "ok": "OK",
8737
+ "offer": "O {runtime} ainda chega a {name} por {path}, um arquivo-ponte que o SynaBun não consegue provar que é seu (editado, ou de uma versão antiga). Mova-o também para dar a {name} uma pasta de skill; o arquivo fica guardado no registro da mudança.",
8738
+ "moveToo": "Mover também",
8739
+ "undone": "Desfeito: os arquivos-ponte voltaram, e as pastas de skill que a mudança criou foram removidas.",
8740
+ "undonePartly": "Desfeito em parte: veja Configurações → Skills → Pastas de skills.",
8741
+ "moved": "Movido: agora tem uma pasta de skill; o arquivo-ponte fica guardado no registro da mudança.",
8742
+ "movedPartly": "Movido em parte: veja Configurações → Skills → Pastas de skills.",
8743
+ "failed": "Isso não funcionou: {error}"
8744
+ }
8745
+ },
6120
8746
  "context": {
6121
8747
  "focus": "Focar",
6122
8748
  "orbitHere": "Orbitar aqui",
@@ -6291,6 +8917,44 @@
6291
8917
  "errStorage": "Não foi possível salvar a chave desta conta."
6292
8918
  },
6293
8919
  "assistant": {
8920
+ "followups": {
8921
+ "title": "Próximos passos",
8922
+ "titleMulti": "Suas decisões",
8923
+ "hintMulti": "Escolha quantos quiser e envie",
8924
+ "send": "Enviar",
8925
+ "sendCount": "Enviar {n} selecionados",
8926
+ "other": "Outra coisa…",
8927
+ "otherTip": "Escreva sua própria resposta na caixa de mensagem",
8928
+ "sent": "Enviado",
8929
+ "earlier": "Anterior",
8930
+ "guessed": "Lido da resposta: confira o texto antes de enviar",
8931
+ "titleConfirm": "Pode seguir?",
8932
+ "titleQuestion": "Você decide",
8933
+ "hintQuestion": "Escolha uma, ou escreva a sua resposta",
8934
+ "hold": "Agora não",
8935
+ "holdSend": "Espere com isso por enquanto.",
8936
+ "recommended": "Recomendado",
8937
+ "answerLabel": "Sua resposta",
8938
+ "answered": "Respondida",
8939
+ "keysNext": "{keys} para enviar · Esc para escrever a sua",
8940
+ "keysMulti": "{keys} para marcar · {mod}+Enter para enviar · Esc para escrever a sua",
8941
+ "keysConfirm": "Enter para seguir · Esc para escrever a sua",
8942
+ "keysQuestion": "{keys} para escolher · Enter para enviar"
8943
+ },
8944
+ "limitWait": {
8945
+ "waiting": "Aguardando o limite de uso reiniciar",
8946
+ "restored": "Limite de uso restaurado",
8947
+ "unknown": "Horário de reinício desconhecido",
8948
+ "provider": "Limite de uso do {provider}",
8949
+ "resetsAt": "reinicia às {time}",
8950
+ "resetAt": "reiniciou às {time}",
8951
+ "left": "faltam {clock}",
8952
+ "retry": "Tentar agora",
8953
+ "tryAgain": "Tentar de novo",
8954
+ "retried": "Reenviado",
8955
+ "announceRestored": "O limite de uso reiniciou.",
8956
+ "continue": "O limite de uso reiniciou. Tente de novo o que foi bloqueado e continue de onde parou."
8957
+ },
6294
8958
  "accountUsage": {
6295
8959
  "autoPicked": "Auto escolheu {to}: {usage}",
6296
8960
  "fallbackPicked": "{from} sem uso disponível → {to}: {usage}",
@@ -6444,7 +9108,14 @@
6444
9108
  "sessions": {
6445
9109
  "empty": "Nenhuma outra sessão",
6446
9110
  "recent": "Recentes",
6447
- "filter": "Filtrar sessões…"
9111
+ "filter": "Filtrar sessões…",
9112
+ "remove": "Remover sessão",
9113
+ "removeNamed": "Remover “{title}”",
9114
+ "removeAsk": "Remover “{title}” de vez?",
9115
+ "removeStopsTurn": "O turno em andamento será interrompido.",
9116
+ "removeStopsAgents": "Os agentes em execução serão interrompidos ({count}).",
9117
+ "removeConfirm": "Remover",
9118
+ "removeFailed": "Não foi possível remover “{title}”: {error}"
6448
9119
  },
6449
9120
  "work": {
6450
9121
  "agents": "{count} agentes",
@@ -6881,13 +9552,17 @@
6881
9552
  "templateWeb": "Buscar {caret} na web",
6882
9553
  "suggestFix": "Corrigir … em {project}",
6883
9554
  "templateFix": "Corrigir {caret} em {project}",
9555
+ "suggestSkill": "Criar Skill",
9556
+ "templateSkill": "Criar uma skill que {caret}",
6884
9557
  "suggestSchedule": "Agendar …",
6885
9558
  "templateSchedule": "Agendar {caret}",
6886
9559
  "suggestRemember": "Lembrar …",
6887
9560
  "templateRemember": "Lembrar {caret}",
6888
9561
  "project": "Projeto",
6889
9562
  "chooseProject": "Escolha um projeto",
6890
- "projectAria": "Escolha um projeto (atual: {project})"
9563
+ "projectAria": "Escolha um projeto (atual: {project})",
9564
+ "starters": "Sugestões",
9565
+ "context": "Contexto"
6891
9566
  },
6892
9567
  "status": {
6893
9568
  "aborted": "Interrompido.",
@@ -6903,6 +9578,10 @@
6903
9578
  "rewound": "Arquivos restaurados ao ponto de controle",
6904
9579
  "rewindFailed": "Falha ao restaurar",
6905
9580
  "stopAllRequested": "Parando todos os agentes despachados…",
9581
+ "stopAllDone": {
9582
+ "one": "{count} agente parado.",
9583
+ "other": "{count} agentes parados."
9584
+ },
6906
9585
  "stopFailed": "Falha ao parar",
6907
9586
  "stopRequested": "Parada solicitada para {id}",
6908
9587
  "routeMode": "Roteamento de modelos: {mode}",
@@ -7097,7 +9776,9 @@
7097
9776
  "awaitingRoute": "aguardando sua escolha de modelo",
7098
9777
  "needsApproval": "precisa de aprovação",
7099
9778
  "needsInput": "precisa de informações",
9779
+ "waitingInput": "aguardando sua resposta",
7100
9780
  "queued": "na fila",
9781
+ "resuming": "retomando após reiniciar o servidor",
7101
9782
  "strongerModel": "um modelo mais capaz",
7102
9783
  "escalateTo": "Transferir para {label}",
7103
9784
  "escalateFailed": "A execução falhou",
@@ -7129,13 +9810,72 @@
7129
9810
  "title": "Agentes",
7130
9811
  "showAll": "Mostrar tudo",
7131
9812
  "stopAll": "Parar tudo",
9813
+ "stopAllConfirm": {
9814
+ "one": "Parar {count} agente?",
9815
+ "other": "Parar {count} agentes?"
9816
+ },
9817
+ "stopAllConfirmTip": "Pressione de novo para parar todos os agentes desta sessão",
9818
+ "stopAllTip": "Parar todos os agentes desta sessão (pede confirmação)",
7132
9819
  "empty": "Ainda não há agentes despachados. Experimente /dispatch codex \"…\"",
7133
- "running": "{n} em execução",
7134
- "needsApproval": "{n} precisam de aprovação",
7135
- "done": "{n} concluídos",
9820
+ "running": {
9821
+ "one": "{count} em execução",
9822
+ "other": "{count} em execução"
9823
+ },
9824
+ "needsApproval": {
9825
+ "one": "{count} precisa de aprovação",
9826
+ "other": "{count} precisam de aprovação"
9827
+ },
9828
+ "needsAnswer": {
9829
+ "one": "{count} aguardando sua resposta",
9830
+ "other": "{count} aguardando sua resposta"
9831
+ },
9832
+ "done": {
9833
+ "one": "{count} concluído",
9834
+ "other": "{count} concluídos"
9835
+ },
7136
9836
  "emptyShort": "Ainda não há agentes despachados.",
7137
9837
  "clearFinished": "Limpar concluídos",
7138
- "idle": "{n} ociosos"
9838
+ "idle": {
9839
+ "one": "{count} ocioso",
9840
+ "other": "{count} ociosos"
9841
+ },
9842
+ "reveal": "{label}. Mostrar na conversa",
9843
+ "working": "Agentes trabalhando",
9844
+ "more": {
9845
+ "one": "Mais {count} agente trabalhando: mostrar a lista",
9846
+ "other": "Mais {count} agentes trabalhando: mostrar a lista"
9847
+ }
9848
+ },
9849
+ "stage": {
9850
+ "scene": {
9851
+ "quick": "Ajuste rápido",
9852
+ "code": "Programando",
9853
+ "complex": "Tarefa complexa",
9854
+ "review": "Revisando",
9855
+ "research": "Pesquisando",
9856
+ "browser": "Navegando",
9857
+ "computer": "Usando o computador",
9858
+ "automation": "Automatizando",
9859
+ "design": "Criando o design",
9860
+ "image_gen": "Gerando uma imagem",
9861
+ "video_gen": "Gerando um vídeo",
9862
+ "generic": "Trabalhando"
9863
+ },
9864
+ "doing": "{scene}…",
9865
+ "queued": "Na fila",
9866
+ "queuedAt": "Na fila · posição {n}",
9867
+ "starting": "Iniciando…",
9868
+ "waitingApproval": "Aguardando sua aprovação",
9869
+ "waitingInput": "Aguardando sua resposta",
9870
+ "waitingRoute": "Aguardando sua escolha de modelo",
9871
+ "done": "Concluído",
9872
+ "failed": "Falhou",
9873
+ "stopped": "Parado",
9874
+ "underMinute": "menos de um minuto",
9875
+ "minutes": {
9876
+ "one": "{count} min",
9877
+ "other": "{count} min"
9878
+ }
7139
9879
  },
7140
9880
  "composer": {
7141
9881
  "aria": "Enviar mensagem ao assistente",
@@ -7168,6 +9908,9 @@
7168
9908
  "model": "Trocar modelo (e cérebro)",
7169
9909
  "project": "Definir projeto de trabalho",
7170
9910
  "stop": "Parar uma execução, tudo ou o turno atual",
9911
+ "stopAmbiguous": "\"{target}\" corresponde a {count} agentes: {list}. Nada foi parado; indique um deles.",
9912
+ "stopFinished": "{name} já terminou.",
9913
+ "stopNoMatch": "Nenhum agente desta sessão corresponde a \"{target}\". Nada foi parado; /agents lista os agentes.",
7171
9914
  "new": "Iniciar nova sessão",
7172
9915
  "resume": "Retomar sessão anterior",
7173
9916
  "compact": "Compactar o contexto",
@@ -7222,6 +9965,8 @@
7222
9965
  "customAnswer": "Ou digite sua resposta…",
7223
9966
  "typeAnswer": "Digite sua resposta…",
7224
9967
  "multiHint": "Selecione todas as opções aplicáveis",
9968
+ "keys": "{keys} para escolher · Enter para responder · Esc volta à caixa de mensagem",
9969
+ "keysText": "Enter para responder · Esc volta à caixa de mensagem",
7225
9970
  "denyReason": "Diga ao agente o motivo (opcional)…",
7226
9971
  "planFeedback": "Solicitar alterações… (enviado com “Continuar planejando”)",
7227
9972
  "action": {
@@ -7239,6 +9984,7 @@
7239
9984
  "allowed": "Permitido",
7240
9985
  "always": "Sempre",
7241
9986
  "denied": "Negado",
9987
+ "declined": "Recusado",
7242
9988
  "answered": "Respondidas",
7243
9989
  "answeredInChat": "Respondido na conversa",
7244
9990
  "skipped": "Ignorados",
@@ -7281,7 +10027,7 @@
7281
10027
  "projectNone": "Pasta pessoal",
7282
10028
  "projectNoneDesc": "sem projeto",
7283
10029
  "projectCustom": "Digite um caminho de diretório…",
7284
- "mcp": "Perfil de ferramentas MCP",
10030
+ "mcp": "Ferramentas do SynaBun",
7285
10031
  "tools": "ferramentas",
7286
10032
  "mode": "Modo de permissão",
7287
10033
  "modes": {
@@ -8452,20 +11198,12 @@
8452
11198
  },
8453
11199
  "tutorial": {
8454
11200
  "title": "Tour do workspace",
8455
- "helpDescription": "O botão ? na barra de título abre o tour do workspace e continua de onde você parou. Recomeçar, dentro do tour, volta ao primeiro passo.",
11201
+ "helpDescription": "O botão ? abre o tour do workspace: o SynaBun mostra o painel do Assistente no próprio quadro, um capítulo por vez. Volte a qualquer capítulo pela lista.",
8456
11202
  "back": "Voltar",
8457
11203
  "next": "Seguinte",
8458
- "skip": "Pular tour",
8459
- "finish": "Concluir",
8460
- "close": "Fechar",
8461
- "start": "Quero ver",
8462
11204
  "later": "Deixar para depois",
8463
- "restart": "Recomeçar",
8464
- "progress": "{n} de {total}",
8465
- "setupProgress": "Configuração · {n} de {total}",
11205
+ "close": "Fechar",
8466
11206
  "navigation": "Navegação do tour",
8467
- "keys": "← Voltar · → ou Enter Seguinte · Esc Fechar",
8468
- "unavailable": "Este controle não está na tela agora. Pode continuar: o tour funciona sem ele.",
8469
11207
  "explore": "Explorar meu projeto",
8470
11208
  "model": "Modelo da exploração",
8471
11209
  "project": "Pasta do projeto",
@@ -8483,19 +11221,7 @@
8483
11221
  "launching": "Iniciando a exploração…",
8484
11222
  "launchFailed": "A exploração não começou. Tente novamente ou deixe para depois.",
8485
11223
  "selectionMissing": "Escolha primeiro uma CLI e um projeto: Voltar leva você até eles.",
8486
- "names": {
8487
- "explorer": "Memory Explorer",
8488
- "schedules": "Schedules",
8489
- "keybinds": "Keybinds"
8490
- },
8491
- "chapters": {
8492
- "memory": "Memória",
8493
- "workspace": "Workspace",
8494
- "tools": "Ferramentas de código",
8495
- "automation": "Automações",
8496
- "assistant": "Assistente SynaBun",
8497
- "help": "Ajuda"
8498
- },
11224
+ "setupProgress": "Configuração · {n} de {total}",
8499
11225
  "steps": {
8500
11226
  "onboarding-explore": {
8501
11227
  "title": "Comece pelo seu projeto",
@@ -8520,78 +11246,101 @@
8520
11246
  "onboarding-memory-explain": {
8521
11247
  "title": "Tudo pronto para explorar",
8522
11248
  "body": "A CLI abre em uma janela de terminal e salva memórias enquanto lê. Seus agentes as recuperam nas próximas sessões e as atualizam conforme o código muda."
11249
+ }
11250
+ }
11251
+ },
11252
+ "tour": {
11253
+ "title": "Tour do workspace",
11254
+ "starter": "Me mostre o workspace",
11255
+ "starterTime": "2 min",
11256
+ "ui": {
11257
+ "next": "Continuar",
11258
+ "done": "Concluir",
11259
+ "skip": "Pular tour",
11260
+ "back": "Voltar",
11261
+ "close": "Fechar",
11262
+ "hint": "Toque ou tecle →",
11263
+ "chapterOf": "{n}/{total}",
11264
+ "chapters": "Capítulos do tour",
11265
+ "resume": "Continuar daqui",
11266
+ "explore": "Explorar um projeto com uma CLI de código…",
11267
+ "announce": "Capítulo {n} de {total}. {line}"
11268
+ },
11269
+ "chapters": {
11270
+ "hello": "Olá",
11271
+ "work": "Como eu trabalho",
11272
+ "controls": "Seus controles",
11273
+ "workspace": "Pelo workspace",
11274
+ "first": "Sua primeira tarefa"
11275
+ },
11276
+ "beats": {
11277
+ "hello": {
11278
+ "line": "Oi, eu sou o SynaBun. Este painel é onde a gente trabalha junto. Deixa eu te mostrar como, aqui mesmo no quadro."
8523
11279
  },
8524
- "welcome": {
8525
- "title": "Um tour rápido pelo seu workspace",
8526
- "body": "Veja como a memória, suas ferramentas de código e o Assistente SynaBun se encaixam. Pule quando quiser: o botão ? traz você de volta."
8527
- },
8528
- "explain-memory-explorer": {
8529
- "title": "Encontre o que seus agentes lembram",
8530
- "body": "O {explorer} lista todas as memórias salvas. Busque nele ou filtre por categoria e tag."
8531
- },
8532
- "explain-graph": {
8533
- "title": "Veja sua memória como um mapa",
8534
- "body": "Cada memória é um ponto no mapa, e as categorias formam ilhas. O menu {menu} enquadra o mapa, mostra os vizinhos de uma memória e reconstrói o layout.",
8535
- "body2d": "Cada memória é um nó, com vínculos para as memórias relacionadas. O menu {menu} escolhe quais vínculos aparecem e quantas memórias carregam, e redefine o layout."
8536
- },
8537
- "explain-focus": {
8538
- "title": "Abra espaço para pensar",
8539
- "body": "O modo de foco troca o {view} por um quadro branco. Desenhe e escreva aqui: seus agentes leem o quadro e acrescentam coisas a ele.",
8540
- "graph": "{focus} troca o {view} por um quadro branco. Desenhe e escreva lá: seus agentes leem o quadro e acrescentam coisas a ele."
8541
- },
8542
- "explain-workspaces": {
8543
- "title": "Guarde seu layout",
8544
- "body": "Um workspace salva seus cards abertos, sua visão e seus filtros. Carregue-o para ter essa cena de volta."
8545
- },
8546
- "explain-terminals": {
8547
- "title": "Trabalhe com suas CLIs de código",
8548
- "body": "{apps} abre Claude Code, Codex, Gemini e OpenCode em janelas de terminal. Encaixe-as embaixo ou deixe-as flutuando sobre o quadro."
8549
- },
8550
- "explain-browser": {
8551
- "title": "Leve o navegador junto",
8552
- "body": "{apps} → {browser} abre o navegador que o SynaBun controla. Seus agentes o usam para ler páginas e agir nelas."
8553
- },
8554
- "explain-side-panel": {
8555
- "title": "Converse ao lado do seu trabalho",
8556
- "body": "Estes botões abrem Claude Code, Codex e OpenCode como painéis laterais. Escolha ali um projeto e um modelo e comece a conversar."
8557
- },
8558
- "explain-automations": {
8559
- "title": "Dê uma casa ao trabalho repetido",
8560
- "body": "O {studio} guarda como modelos as tarefas que seus agentes repetem. Inicie uma com a CLI e o modelo que quiser."
8561
- },
8562
- "explain-schedules": {
8563
- "title": "Rode o trabalho na hora certa",
8564
- "body": "{schedules} roda suas automações com um timer ou uma agenda cron. Cada execução abre sua própria sessão de agente."
8565
- },
8566
- "assistant-start": {
8567
- "title": "Conheça o Assistente SynaBun",
8568
- "body": "Diga o que você precisa com suas palavras; ele pergunta quando algo não está claro. Tente “No que você pode me ajudar neste projeto?”",
8569
- "closed": "Este botão abre o Assistente. Diga o que você precisa com suas palavras; ele pergunta quando algo não está claro."
8570
- },
8571
- "assistant-tools": {
8572
- "title": "Tarefas pequenas, resolvidas aqui",
8573
- "body": "Ele navega, roda comandos de shell, faz pequenas edições e cuida de memória, loops e agendamentos por conta própria. A chave {computer} deixa que ele use os apps do seu Mac.",
8574
- "closed": "Ele navega, roda comandos de shell, faz pequenas edições e cuida de memória, loops e agendamentos por conta própria. Na barra dele, a chave {computer} deixa que ele use os apps do seu Mac."
8575
- },
8576
- "assistant-route": {
8577
- "title": "Tarefas grandes vão para workers",
8578
- "body": "Tarefas de código, design, imagem e vídeo vão para workers Claude Code, Codex ou OpenCode. Um cartão de rota escolhe o modelo de cada uma; esta chave define quando ele pergunta a você.",
8579
- "closed": "Tarefas de código, design, imagem e vídeo vão para workers Claude Code, Codex ou OpenCode. Um cartão de rota escolhe o modelo de cada uma, e você define quando ele pergunta."
8580
- },
8581
- "assistant-track": {
8582
- "title": "Acompanhe o trabalho",
8583
- "body": "Cada execução de um worker aparece na conversa com o resultado. Esta faixa conta os tokens usados, e {more} → {budget} limita o gasto.",
8584
- "more": "Cada execução de um worker aparece na conversa com o resultado. O uso de tokens é contado abaixo da conversa, e {more} → {budget} limita o gasto.",
8585
- "closed": "Cada execução de um worker aparece na conversa com o resultado. O Assistente conta os tokens usados, e {more} → {budget} limita o gasto."
8586
- },
8587
- "explain-help": {
8588
- "title": "Volte quando quiser",
8589
- "body": "? reabre este tour de onde você parou. {keybinds} lista seus atalhos, e {settings} guarda todo o resto."
8590
- },
8591
- "skip-hint": {
8592
- "title": "Seu tour mora aqui",
8593
- "body": "Clique em ? quando quiser retomar. Nada no seu workspace foi alterado."
11280
+ "routing": {
11281
+ "line": "Você pede. Eu planejo e escolho quem faz o quê: eu mesmo, ou um agente no modelo certo para a tarefa."
11282
+ },
11283
+ "memory": {
11284
+ "line": "O que a gente aprende vira memória, e a próxima sessão começa de onde esta parou."
11285
+ },
11286
+ "tools": {
11287
+ "line": "Eu leio a web no navegador do SynaBun, uso seu Mac quando você permite e trabalho na pasta do seu projeto.",
11288
+ "lineNoComputer": "Eu leio a web no navegador do SynaBun e trabalho na pasta do seu projeto, com as ferramentas que você permite."
11289
+ },
11290
+ "project": {
11291
+ "line": "Este é o projeto da conversa: a pasta onde eu leio e mexo nos arquivos. Troque quando mudar de assunto."
11292
+ },
11293
+ "model": {
11294
+ "line": "Este é o modelo com quem você conversa. Os agentes podem usar outros: eu escolho por tarefa, e você troca quando quiser."
11295
+ },
11296
+ "effort": {
11297
+ "line": "Ao lado: quanto eu penso, e quando eu peço permissão antes de agir. O modo Plano existe para aprovar primeiro."
11298
+ },
11299
+ "routes": {
11300
+ "line": "O roteamento decide quando eu confiro com você antes de escolher quem faz. Comece em Sempre perguntar; relaxe quando confiar."
11301
+ },
11302
+ "workspace": {
11303
+ "line": "Fora do painel: o Memory Explorer, o quadro branco e as Automações. Eu aponto cada um quando você precisar."
11304
+ },
11305
+ "whiteboard": {
11306
+ "line": "O quadro branco é seu espaço para pensar; eu leio o que você desenha. Nossas conversas ficam no meu nome, ali em cima."
11307
+ },
11308
+ "automations": {
11309
+ "line": "Trabalho que se repete vira uma automação; os agendamentos rodam na hora certa. Eu aviso aqui quando terminar."
11310
+ },
11311
+ "handoff": {
11312
+ "line": "Esse foi o tour. Agora é com você: escreva o que precisa, ou escolha um começo. Eu fico por aqui, e o ? me traz de volta."
8594
11313
  }
11314
+ },
11315
+ "ink": {
11316
+ "hi": "oi!",
11317
+ "you": "você",
11318
+ "code": "código",
11319
+ "research": "pesquisa",
11320
+ "design": "design",
11321
+ "memory": "memória",
11322
+ "web": "web",
11323
+ "mac": "seu Mac",
11324
+ "files": "seus arquivos",
11325
+ "chapter3": "Capítulo 3",
11326
+ "controls": "Seus controles",
11327
+ "whereIWork": "onde eu trabalho",
11328
+ "myBrain": "meu cérebro",
11329
+ "howHard": "quanto penso",
11330
+ "whenIAsk": "quando pergunto",
11331
+ "me": "eu ✓",
11332
+ "worker": "agente",
11333
+ "chapter4": "Capítulo 4",
11334
+ "workspaceTitle": "Pelo workspace",
11335
+ "sessions": "nossas sessões",
11336
+ "onTime": "na hora certa"
11337
+ },
11338
+ "tips": {
11339
+ "run": "Este é um agente no próprio modelo. O progresso dele fica aqui; abra para acompanhar ou parar.",
11340
+ "usage": "O que esta sessão já usou. Defina um orçamento em Mais opções quando quiser um limite.",
11341
+ "route": "O roteamento perguntou aqui: escolha quem faz o trabalho. O chip de rota lá em cima define quando eu pergunto.",
11342
+ "more": "Modelos, Rotas e o orçamento ficam aqui, com as outras opções desta conversa.",
11343
+ "computer": "O uso do computador está ligado: eu vejo e uso os apps do seu Mac. Desligue aqui quando quiser."
8595
11344
  }
8596
11345
  },
8597
11346
  "greeting": {
@@ -8758,6 +11507,7 @@
8758
11507
  "tooltip": "Atualização do SynaBun disponível: v{current} → v{latest}",
8759
11508
  "tooltipDownloading": "Baixando o SynaBun v{latest}",
8760
11509
  "tooltipReady": "O SynaBun v{latest} está pronto: ele é instalado quando o SynaBun estiver ocioso",
11510
+ "tooltipReadyOff": "O SynaBun v{latest} está pronto para instalar",
8761
11511
  "titleAvailable": "Atualização disponível",
8762
11512
  "titleDownloading": "Baixando a atualização",
8763
11513
  "titleDownloaded": "Atualização pronta",
@@ -8780,6 +11530,8 @@
8780
11530
  "hide": "Ocultar",
8781
11531
  "hideHint": "O download continua com esta janela oculta. O SynaBun instala a atualização sozinho quando nada estiver em execução.",
8782
11532
  "readyBody": "O SynaBun v{version} foi baixado. Ele é instalado sozinho quando nada estiver em execução: o SynaBun mostra um aviso de um minuto e reinicia já atualizado. Ele também é instalado quando você sai do SynaBun.",
11533
+ "offBody": "As atualizações automáticas estão desligadas. Instalar agora baixa a versão e reinicia o SynaBun nela assim que nada estiver em execução.",
11534
+ "readyBodyOff": "O SynaBun v{version} foi baixado. As atualizações automáticas estão desligadas: ele é instalado quando você escolher Instalar agora.",
8783
11535
  "waitingBody": "Aguardando: {list}.",
8784
11536
  "countdownBody": "O SynaBun reinicia na v{version} em {seconds} s.",
8785
11537
  "postponedBody": "Adiado até {time}. Ele também é instalado quando você sai do SynaBun.",
@@ -8796,14 +11548,19 @@
8796
11548
  "errorFallback": "O SynaBun não conseguiu procurar atualizações. Verifique a conexão e tente novamente.",
8797
11549
  "errorNext": "O SynaBun mantém a versão em execução e tenta de novo na próxima verificação. Você pode tentar agora ou baixar a nova versão manualmente.",
8798
11550
  "manualLink": "Baixar manualmente",
11551
+ "settingsLink": "Configurações de atualização",
8799
11552
  "close": "Fechar",
8800
11553
  "retry": "Tentar novamente",
8801
11554
  "testFeed": "feed de teste",
8802
11555
  "metaAvailable": "Pelo app do SynaBun",
8803
11556
  "metaDownloading": "Baixando: {percent}%",
8804
11557
  "metaDownloaded": "Pronta: é instalada quando o SynaBun estiver ocioso",
11558
+ "metaReadyOff": "Pronta para instalar",
8805
11559
  "metaCountdown": "Reiniciando para instalá-la",
8806
- "metaPostponed": "Adiada: é instalada ao sair ou mais tarde"
11560
+ "metaPostponed": "Adiada: é instalada ao sair ou mais tarde",
11561
+ "restartButton": "Reiniciar para atualizar",
11562
+ "restartTooltip": "O SynaBun v{latest} está pronto: reinicie para atualizar",
11563
+ "restartSoon": "Reiniciando em breve"
8807
11564
  },
8808
11565
  "busy": {
8809
11566
  "assistant": "uma execução do Assistente ou um agente despachado",
@@ -8848,6 +11605,8 @@
8848
11605
  "updateAvailableManualDetail": "Esta cópia não consegue se substituir onde está. Baixe a nova imagem de disco e instale-a do jeito que você instalou o SynaBun.",
8849
11606
  "updateDownloading": "O SynaBun v{version} está sendo baixado",
8850
11607
  "updateAutoDetail": "O SynaBun a instala sozinho assim que nada estiver em execução, depois de um aviso de um minuto que você pode adiar. Ela também é instalada quando você sai do SynaBun.",
11608
+ "updateAvailableOffDetail": "As atualizações automáticas estão desligadas. Instalar agora baixa a versão e reinicia o SynaBun nela assim que nada estiver em execução.",
11609
+ "updateReadyOffDetail": "As atualizações automáticas estão desligadas: ela é instalada quando você escolher Instalar agora.",
8851
11610
  "installNow": "Instalar agora",
8852
11611
  "downloadYourself": "Baixar manualmente",
8853
11612
  "countdownTitle": "Atualizando o SynaBun para a v{version}",
@@ -8872,7 +11631,6 @@
8872
11631
  "stepPath": "Adicionando a pasta do CLI ao PATH…",
8873
11632
  "stepPathAdded": "Adicionado {dir} ao seu PATH",
8874
11633
  "bodyMissing": "Instale com um clique pelo instalador oficial de {vendor} ou execute:",
8875
- "bodyMissingArchive": "Instale com um clique pela versão oficial publicada por {vendor} ou execute:",
8876
11634
  "bodyMissingManual": "Instale com este comando e depois verifique novamente:",
8877
11635
  "bodyBroken": "{label} foi encontrado em {path}, mas não conseguiu iniciar:",
8878
11636
  "bodyBrokenVersion": "{label} {version} foi encontrado em {path}, mas não conseguiu iniciar:",
@@ -8888,8 +11646,6 @@
8888
11646
  "stepDownloadReceived": "Baixando: {received} MB",
8889
11647
  "stepVerify": "Verificando o download…",
8890
11648
  "stepRun": "Executando o instalador oficial…",
8891
- "stepExtract": "Descompactando…",
8892
- "stepPlace": "Colocando no lugar…",
8893
11649
  "stepCheck": "Verificando se ele inicia…",
8894
11650
  "errorOffline": "Não foi possível acessar o servidor de download. Verifique a conexão e tente novamente.",
8895
11651
  "errorHttp": "O servidor de download respondeu com erro. Tente novamente em instantes.",
@@ -8898,7 +11654,6 @@
8898
11654
  "errorTimeout": "O instalador demorou demais e foi interrompido.",
8899
11655
  "errorInstallerFailed": "O instalador oficial parou com um erro.",
8900
11656
  "errorNotFound": "O instalador terminou, mas o SynaBun não encontra {label} depois disso.",
8901
- "errorUnpack": "Não foi possível descompactar o download; por isso ele foi removido.",
8902
11657
  "errorDisk": "Não foi possível gravar os arquivos. Verifique o espaço livre e as permissões e tente novamente.",
8903
11658
  "errorCancelled": "A instalação foi interrompida.",
8904
11659
  "errorUnsupported": "Não há instalação com um clique para este sistema. Use o comando abaixo ou o guia de instalação.",
@@ -8956,5 +11711,721 @@
8956
11711
  "errorCancelled": "O download foi interrompido.",
8957
11712
  "errorUnknown": "O download não terminou.",
8958
11713
  "errorRequest": "O SynaBun não respondeu: {message}"
11714
+ },
11715
+ "schedules": {
11716
+ "window": {
11717
+ "title": "Agendamentos",
11718
+ "guestDisabled": "Agendamentos desativados pelo host",
11719
+ "hideBackdrop": "Ocultar o fundo escuro",
11720
+ "showBackdrop": "Mostrar o fundo escuro",
11721
+ "close": "Fechar Agendamentos",
11722
+ "closeTip": "Fechar (Esc)",
11723
+ "railLabel": "Visualizações e grupos de agendamentos",
11724
+ "viewLabel": "Visualização"
11725
+ },
11726
+ "views": {
11727
+ "upcoming": "A seguir",
11728
+ "all": "Todos os agendamentos",
11729
+ "attention": "Precisa de atenção",
11730
+ "paused": "Pausados",
11731
+ "timers": "Timers",
11732
+ "activity": "Atividade",
11733
+ "ungrouped": "Sem grupo"
11734
+ },
11735
+ "oneAtATime": "Um de cada vez",
11736
+ "rail": {
11737
+ "groups": "Grupos",
11738
+ "views": "Visualizações",
11739
+ "newGroup": "Novo grupo",
11740
+ "noGroups": "Nenhum grupo ainda.",
11741
+ "groupLabel": "{name}: {facts}",
11742
+ "oneAtATimeFact": "um de cada vez",
11743
+ "attentionTip": {
11744
+ "one": "{count} agendamento precisa de atenção",
11745
+ "other": "{count} agendamentos precisam de atenção"
11746
+ },
11747
+ "withCount": "{label} ({count})"
11748
+ },
11749
+ "count": {
11750
+ "schedules": {
11751
+ "one": "{count} agendamento",
11752
+ "other": "{count} agendamentos"
11753
+ },
11754
+ "active": {
11755
+ "one": "{count} ativo",
11756
+ "other": "{count} ativos"
11757
+ },
11758
+ "paused": {
11759
+ "one": "{count} pausado",
11760
+ "other": "{count} pausados"
11761
+ },
11762
+ "attention": {
11763
+ "one": "{count} precisa de atenção",
11764
+ "other": "{count} precisam de atenção"
11765
+ },
11766
+ "runs": {
11767
+ "one": "{count} execução",
11768
+ "other": "{count} execuções"
11769
+ }
11770
+ },
11771
+ "list": {
11772
+ "searchSchedules": "Buscar agendamentos",
11773
+ "searchRuns": "Buscar execuções",
11774
+ "searchPlaceholder": "Buscar por nome, automação, grupo ou horário…",
11775
+ "searchRunsPlaceholder": "Buscar execuções por agendamento ou automação…",
11776
+ "clearSearch": "Limpar busca",
11777
+ "order": "Ordem",
11778
+ "sortNext": "Próxima execução primeiro",
11779
+ "sortName": "Nome",
11780
+ "sortLast": "Última execução primeiro",
11781
+ "dragHint": "Arraste um agendamento para um grupo na barra lateral para movê-lo",
11782
+ "loading": "Carregando agendamentos…",
11783
+ "statusLoading": "Carregando…",
11784
+ "statusNotLoaded": "Não carregado",
11785
+ "statusMatch": {
11786
+ "one": "{count} agendamento corresponde a “{query}”",
11787
+ "other": "{count} agendamentos correspondem a “{query}”"
11788
+ },
11789
+ "statusShowing": {
11790
+ "one": "Mostrando {shown} de {count} agendamento",
11791
+ "other": "Mostrando {shown} de {count} agendamentos"
11792
+ },
11793
+ "statusNoMatches": "Nenhum resultado",
11794
+ "shownOf": "{shown} de {total}",
11795
+ "editGroupNamed": "Editar o grupo {name}",
11796
+ "later": "Mais tarde"
11797
+ },
11798
+ "head": {
11799
+ "editGroup": "Editar grupo",
11800
+ "prompt": "Criar por prompt",
11801
+ "promptTip": "Descreva o agendamento ao Claude Code em um painel lateral",
11802
+ "newSchedule": "Novo agendamento",
11803
+ "upcoming": {
11804
+ "one": "{count} agendamento roda nas próximas 24 horas, listado na próxima execução.",
11805
+ "other": "{count} agendamentos rodam nas próximas 24 horas, cada um na próxima execução, o mais próximo primeiro."
11806
+ },
11807
+ "upcomingNone": "Nada roda nas próximas 24 horas.",
11808
+ "attention": "Agendamentos ativos cuja última execução falhou ou que estão atrasados. Abra um para ver o motivo.",
11809
+ "paused": "Agendamentos pausados mantêm os ajustes. Ative um para colocá-lo de volta no cronograma.",
11810
+ "activity": "A última execução de cada agendamento, da mais recente para a mais antiga. Abra uma para ver o agendamento.",
11811
+ "ungrouped": "Agendamentos sem grupo. Arraste um para um grupo na barra lateral para organizá-lo.",
11812
+ "groupLaunch": "Ajustes de execução do grupo: {settings}"
11813
+ },
11814
+ "overrides": {
11815
+ "context": "contexto {value}",
11816
+ "thinking": "raciocínio {value}",
11817
+ "mcp": "Ferramentas do SynaBun: {value}",
11818
+ "browserOn": "navegador ativado",
11819
+ "browserOff": "navegador desativado"
11820
+ },
11821
+ "note": {
11822
+ "showingBefore": "{error} Mostrando o que foi carregado antes.",
11823
+ "tryAgain": "Tentar novamente",
11824
+ "dismiss": "Dispensar"
11825
+ },
11826
+ "load": {
11827
+ "failed": "Não foi possível carregar {lists}: {reasons}.",
11828
+ "list": {
11829
+ "schedules": "os agendamentos",
11830
+ "automations": "as automações",
11831
+ "groups": "os grupos"
11832
+ },
11833
+ "timersFailed": "Não foi possível carregar os timers: {reasons}.",
11834
+ "noAnswer": "sem resposta em {seconds} segundos",
11835
+ "unexpected": "uma resposta inesperada"
11836
+ },
11837
+ "loadFailed": {
11838
+ "title": "Não foi possível carregar os agendamentos",
11839
+ "notEverything": "Nem tudo foi carregado.",
11840
+ "waitingSchedule": "O novo agendamento abre quando eles carregarem.",
11841
+ "waitingGroup": "O novo grupo abre quando eles carregarem."
11842
+ },
11843
+ "cliReport": {
11844
+ "clearing": "Limpando os ajustes da CLI anterior dos agendamentos do grupo…",
11845
+ "nowRuns": "O grupo agora usa {cli}.",
11846
+ "noCli": "O grupo não define mais uma CLI.",
11847
+ "cleared": "Os ajustes da CLI anterior foram limpos em {names}.",
11848
+ "noneLeft": "Nenhum agendamento do grupo tinha ajustes da CLI anterior.",
11849
+ "changed": {
11850
+ "one": "{names} mudou nesse meio-tempo e manteve os próprios ajustes.",
11851
+ "other": "{names} mudaram nesse meio-tempo e mantiveram os próprios ajustes."
11852
+ },
11853
+ "failed": {
11854
+ "one": "{names} não pôde ser verificado ou atualizado e manteve os próprios ajustes.",
11855
+ "other": "{names} não puderam ser verificados ou atualizados e mantiveram os próprios ajustes."
11856
+ },
11857
+ "open": {
11858
+ "one": "Abra-o para escolher os ajustes.",
11859
+ "other": "Abra-os para escolher os ajustes."
11860
+ }
11861
+ },
11862
+ "empty": {
11863
+ "none": "Nenhum agendamento ainda",
11864
+ "noneText": "Um agendamento inicia uma das suas automações em um cronograma.",
11865
+ "noMatch": "Nenhum agendamento corresponde a “{query}”",
11866
+ "elsewhere": "Há resultados em outras visualizações.",
11867
+ "tryAnother": "Tente outra palavra ou limpe a busca.",
11868
+ "searchAll": "Buscar em todos os agendamentos",
11869
+ "attention": "Nada precisa de atenção",
11870
+ "attentionText": "A última execução de cada agendamento ativo funcionou, e nenhum está atrasado.",
11871
+ "paused": "Nenhum agendamento pausado",
11872
+ "pausedText": "Todos os agendamentos estão no cronograma.",
11873
+ "upcoming": "Nada roda nas próximas 24 horas",
11874
+ "upcomingText": "Os agendamentos ativos aparecem aqui quando a próxima execução estiver a menos de um dia.",
11875
+ "ungrouped": "Todos os agendamentos estão em um grupo",
11876
+ "group": "Nenhum agendamento neste grupo ainda",
11877
+ "groupText": "Arraste um para o grupo na barra lateral ou crie um aqui.",
11878
+ "noRunMatch": "Nenhuma execução corresponde a “{query}”",
11879
+ "noRuns": "Nenhuma execução ainda",
11880
+ "noRunsText": "A última execução de cada agendamento aparece aqui depois que ele rodar."
11881
+ },
11882
+ "row": {
11883
+ "paused": "Pausado",
11884
+ "switchLabel": "Executar {name} no cronograma",
11885
+ "pause": "Pausar",
11886
+ "resume": "Retomar"
11887
+ },
11888
+ "detail": {
11889
+ "runs": "Execuções",
11890
+ "automation": "Automação",
11891
+ "missingAutomation": "Automação ausente",
11892
+ "timetable": "Cronograma",
11893
+ "nextRun": "Próxima execução",
11894
+ "lastRun": "Última execução",
11895
+ "error": "Erro",
11896
+ "detail": "Detalhe",
11897
+ "runCount": "Execuções até agora",
11898
+ "timeZone": "Fuso horário",
11899
+ "dayThemes": "Temas por dia",
11900
+ "themedDaysOnly": "(roda só nesses dias)",
11901
+ "launchSettings": "Ajustes de execução",
11902
+ "source": {
11903
+ "group": "(grupo)",
11904
+ "automation": "(automação)",
11905
+ "default": "(padrão)"
11906
+ },
11907
+ "group": "Grupo",
11908
+ "groupOf": "Grupo de {name}",
11909
+ "runNow": "Executar agora",
11910
+ "runNowTip": "Inicia uma execução agora; o cronograma não muda",
11911
+ "editPrompt": "Editar prompt",
11912
+ "editPromptTip": "Abre a automação no Estúdio de automações",
11913
+ "editSchedule": "Editar agendamento",
11914
+ "delete": "Excluir…"
11915
+ },
11916
+ "activity": {
11917
+ "listLabel": "Últimas execuções",
11918
+ "rowLabel": "{name}: {result} {ago}. Mostrar em Todos os agendamentos",
11919
+ "next": "Próxima",
11920
+ "statusMatch": {
11921
+ "one": "{count} execução corresponde a “{query}”",
11922
+ "other": "{count} execuções correspondem a “{query}”"
11923
+ }
11924
+ },
11925
+ "timers": {
11926
+ "sub": "Execute uma automação, ou um agendamento salvo, uma vez após um intervalo.",
11927
+ "waiting": "Aguardando execução",
11928
+ "runOnce": "Executar uma automação uma vez",
11929
+ "usesBrowser": "Usa o navegador",
11930
+ "startIn": "Iniciar em",
11931
+ "delay": "Intervalo",
11932
+ "presetMinutes": "{n} min",
11933
+ "presetHours": "{n} h",
11934
+ "minutesPlaceholder": "min",
11935
+ "minutesFromNow": "Minutos a partir de agora",
11936
+ "start": "Iniciar timer",
11937
+ "fireSaved": "Disparar um agendamento salvo uma vez",
11938
+ "fireSavedIntro": "Ele roda com os próprios ajustes; o cronograma não muda.",
11939
+ "schedule": "Agendamento",
11940
+ "chooseSchedule": "Escolha um agendamento…",
11941
+ "set": "Definir timer",
11942
+ "savedOnce": "Agendamento salvo, uma vez",
11943
+ "automationOnce": "Automação, uma vez",
11944
+ "cancel": "Cancelar",
11945
+ "cancelFor": "Cancelar o timer de {name}",
11946
+ "none": "Nenhum timer aguardando.",
11947
+ "loading": "Carregando timers…",
11948
+ "firing": "disparando",
11949
+ "countdownHours": "{h}h {m}min",
11950
+ "countdownHour": "{h}h",
11951
+ "countdownMinutes": "{m}min"
11952
+ },
11953
+ "form": {
11954
+ "automation": "Automação",
11955
+ "chooseAutomation": "Escolha uma automação…",
11956
+ "cli": "CLI",
11957
+ "model": "Modelo",
11958
+ "context": "Contexto",
11959
+ "thinking": "Raciocínio",
11960
+ "account": "Conta OpenAI",
11961
+ "browser": "Navegador",
11962
+ "group": "Grupo",
11963
+ "name": "Nome",
11964
+ "launchOverrides": "Substituições de execução"
11965
+ },
11966
+ "launch": {
11967
+ "default": "Padrão",
11968
+ "templateDefault": "Padrão da automação",
11969
+ "templateOrDefault": "Automação/padrão",
11970
+ "templateOrGroupDefault": "Padrão da automação/grupo",
11971
+ "noOverride": "Sem substituição",
11972
+ "alwaysOn": "Sempre ativado",
11973
+ "alwaysOff": "Sempre desativado",
11974
+ "saved": "{value} (salvo)",
11975
+ "unavailable": "{value} (indisponível — escolha outro)",
11976
+ "effortOption": "{level} - {desc}",
11977
+ "accountPlan": "{label} ({plan})",
11978
+ "contextProviderDefault": "Padrão do provedor",
11979
+ "contextDefaultSize": "Padrão ({size})",
11980
+ "contextExtendedSize": "Estendido ({size})",
11981
+ "word": {
11982
+ "off": "Desativado",
11983
+ "default": "Padrão",
11984
+ "low": "Baixo",
11985
+ "medium": "Médio",
11986
+ "high": "Alto",
11987
+ "xhigh": "Muito alto",
11988
+ "max": "Máximo",
11989
+ "ultra": "Ultra",
11990
+ "noThinking": "Sem raciocínio",
11991
+ "minimal": "Mínimo",
11992
+ "balanced": "Equilibrado",
11993
+ "deep": "Profundo",
11994
+ "veryDeep": "Muito profundo",
11995
+ "maximum": "Máximo",
11996
+ "configDefault": "Padrão da configuração",
11997
+ "modelDefault": "Padrão do modelo",
11998
+ "light": "Leve",
11999
+ "maximumDelegated": "Máximo, com delegação"
12000
+ }
12001
+ },
12002
+ "editor": {
12003
+ "back": "Voltar para a lista",
12004
+ "backTip": "Voltar (Esc)",
12005
+ "cancel": "Cancelar",
12006
+ "save": "Salvar alterações"
12007
+ },
12008
+ "groupEditor": {
12009
+ "newTitle": "Novo grupo",
12010
+ "newSub": "Grupos reúnem agendamentos relacionados e podem compartilhar ajustes de execução.",
12011
+ "namePlaceholder": "Ritmo do Twitter",
12012
+ "colour": "Cor",
12013
+ "oneAtATimeHelp": "Os agendamentos de todos os grupos definidos como um de cada vez se revezam: enquanto um roda, os outros esperam.",
12014
+ "launchIntro": "Valem para todos os agendamentos deste grupo. O ajuste do próprio agendamento prevalece.",
12015
+ "order": "Ordem",
12016
+ "position": "Posição {position} de {count}",
12017
+ "moveUp": "Mover para cima",
12018
+ "moveDown": "Mover para baixo",
12019
+ "delete": "Excluir",
12020
+ "membersStay": {
12021
+ "one": "O {count} agendamento do grupo vai para Sem grupo e continua rodando.",
12022
+ "other": "Os {count} agendamentos do grupo vão para Sem grupo e continuam rodando."
12023
+ },
12024
+ "empty": "O grupo está vazio.",
12025
+ "deleteGroup": "Excluir grupo…",
12026
+ "create": "Criar grupo"
12027
+ },
12028
+ "scheduleEditor": {
12029
+ "newSub": "Inicia uma das suas automações em um cronograma.",
12030
+ "namePlaceholder": "Post da manhã",
12031
+ "automationOption": "{name} ({category})",
12032
+ "customCategory": "personalizada",
12033
+ "active": "Ativo",
12034
+ "activeHelp": "Desative para pausar o agendamento sem excluí-lo.",
12035
+ "when": "Quando roda",
12036
+ "cron": "Expressão cron",
12037
+ "cronHelp": "Uma expressão cron tem cinco campos: minuto, hora, dia do mês, mês, dia da semana.",
12038
+ "presets": "Predefinições",
12039
+ "presetGroup": "Predefinições: {group}",
12040
+ "launchIntro": "Deixe um ajuste no padrão para usar o do grupo e, depois, o da automação.",
12041
+ "optional": "opcional",
12042
+ "dayThemesIntro": "Contexto extra adicionado à execução naquele dia da semana, como um tema para as segundas. Quando algum dia tem tema, o agendamento roda só nos dias que têm um.",
12043
+ "themeLabel": "Tema: {label}",
12044
+ "removeTheme": "Remover o tema de {day}",
12045
+ "removeThemeTip": "Remover o tema deste dia",
12046
+ "themePlaceholder": "Contexto extra para execuções de {day} (opcional)",
12047
+ "create": "Criar agendamento"
12048
+ },
12049
+ "presets": {
12050
+ "group": {
12051
+ "frequency": "Frequência",
12052
+ "daily": "Diário",
12053
+ "weekly": "Semanal"
12054
+ },
12055
+ "every15min": "A cada 15 min",
12056
+ "every30min": "A cada 30 min",
12057
+ "everyHour": "A cada hora",
12058
+ "every2hours": "A cada 2 horas",
12059
+ "every6hours": "A cada 6 horas",
12060
+ "twiceADay": "Duas vezes por dia",
12061
+ "threeTimesADay": "Três vezes por dia",
12062
+ "weekdays0900": "Dias úteis 09:00",
12063
+ "weekdaysTwice": "Dias úteis, duas vezes",
12064
+ "weekends1000": "Fins de semana 10:00",
12065
+ "monWedFri": "Seg, Qua, Sex",
12066
+ "tueThu": "Ter, Qui"
12067
+ },
12068
+ "confirm": {
12069
+ "scheduleTitle": "Excluir este agendamento?",
12070
+ "scheduleText": "Ele para de rodar e não pode ser restaurado. A automação que ele inicia continua no Estúdio de automações.",
12071
+ "scheduleAccept": "Excluir agendamento",
12072
+ "groupTitle": "Excluir este grupo?",
12073
+ "groupAccept": "Excluir grupo"
12074
+ },
12075
+ "prompt": {
12076
+ "title": "Criar agendamento por prompt",
12077
+ "sub": "Comece o rascunho do agendamento em um painel lateral.",
12078
+ "close": "Fechar",
12079
+ "ready": "Pronto",
12080
+ "planned": "Planejado",
12081
+ "multiProvider": "Vários provedores",
12082
+ "tabLabel": "Assistente de agendamento"
12083
+ },
12084
+ "toast": {
12085
+ "notLoaded": "Os agendamentos ainda não carregaram: salve quando tiverem carregado",
12086
+ "modelUnavailable": "Este modelo não está disponível para a conta selecionada",
12087
+ "contextUnavailable": "Esta janela de contexto não está disponível para o modelo e a conta selecionados",
12088
+ "noChanges": "Nenhuma alteração para salvar",
12089
+ "nameRequired": "Dê um nome ao agendamento",
12090
+ "automationRequired": "Escolha a automação que ele inicia",
12091
+ "cronRequired": "Digite uma expressão cron com cinco campos",
12092
+ "updated": "Agendamento atualizado",
12093
+ "created": "Agendamento criado",
12094
+ "saveFailed": "Falha ao salvar: {error}",
12095
+ "noAutomation": "Nenhuma automação vinculada a este agendamento",
12096
+ "themeRemoved": "Tema de {day} removido",
12097
+ "movedTo": "Movido para {group}",
12098
+ "aGroup": "um grupo",
12099
+ "moveFailed": "Falha ao mover: {error}",
12100
+ "resumed": "{name} voltou ao cronograma",
12101
+ "paused": "{name} está pausado",
12102
+ "toggleFailed": "Falha ao alternar: {error}",
12103
+ "launching": "Iniciando agendamento…",
12104
+ "runFailed": "Falha na execução: {error}",
12105
+ "deleted": "Agendamento excluído",
12106
+ "groupDeleted": "Grupo excluído",
12107
+ "deleteFailed": "Falha ao excluir: {error}",
12108
+ "groupDeleteFailed": "Falha ao excluir o grupo: {error}",
12109
+ "groupNameRequired": "O nome do grupo é obrigatório",
12110
+ "groupCreated": "Grupo criado",
12111
+ "groupFailed": "Falha ao criar o grupo: {error}",
12112
+ "groupUpdated": "Grupo atualizado",
12113
+ "groupUpdatedKept": {
12114
+ "one": "Grupo atualizado. {count} agendamento manteve os ajustes da CLI anterior: a página do grupo diz qual",
12115
+ "other": "Grupo atualizado. {count} agendamentos mantiveram os ajustes da CLI anterior: a página do grupo diz quais"
12116
+ },
12117
+ "groupUpdateFailed": "Falha ao atualizar o grupo: {error}",
12118
+ "reorderFailed": "Falha ao reordenar: {error}",
12119
+ "comingSoon": "Em breve — por enquanto, só o Claude Code",
12120
+ "panelFailed": "Falha ao abrir o painel do Claude: {error}",
12121
+ "chooseAutomation": "Escolha uma automação primeiro",
12122
+ "chooseDelay": "Escolha um intervalo ou digite os minutos",
12123
+ "runningNow": "Executando agora: {name}",
12124
+ "timerSet": "Timer definido: {name}",
12125
+ "runNowFailed": "Falha ao executar agora: {error}",
12126
+ "timerFailed": "Falha no timer: {error}",
12127
+ "timerCancelled": "Timer cancelado",
12128
+ "cancelFailed": "Falha ao cancelar: {error}",
12129
+ "chooseSchedule": "Escolha um agendamento",
12130
+ "minutesRequired": "Digite os minutos a partir de agora",
12131
+ "scheduleTimerSet": "Timer do agendamento definido",
12132
+ "fired": "Agendamento disparado: {name}",
12133
+ "scheduleFailed": "O agendamento falhou: {reason}",
12134
+ "timerFired": "Timer disparado: {name}"
12135
+ },
12136
+ "view": {
12137
+ "everyDay": "Todos os dias",
12138
+ "weekdays": "Dias úteis",
12139
+ "weekends": "Fins de semana",
12140
+ "dayRange": "{from}–{to}",
12141
+ "monthDays": {
12142
+ "one": "Dia {days} de cada mês",
12143
+ "other": "Dias {days} de cada mês"
12144
+ },
12145
+ "everyMinutes": {
12146
+ "one": "a cada minuto",
12147
+ "other": "a cada {count} minutos"
12148
+ },
12149
+ "everyHoursAt": {
12150
+ "one": "a cada hora, no minuto {minute}",
12151
+ "other": "a cada {count} horas, no minuto {minute}"
12152
+ },
12153
+ "everyHourBetween": "a cada hora, das {from} às {to}",
12154
+ "daysAt": "{days} às {times}",
12155
+ "daysEvery": "{days}, {every}",
12156
+ "listAnd": "{list} e {last}",
12157
+ "dayShort": {
12158
+ "sun": "Dom",
12159
+ "mon": "Seg",
12160
+ "tue": "Ter",
12161
+ "wed": "Qua",
12162
+ "thu": "Qui",
12163
+ "fri": "Sex",
12164
+ "sat": "Sáb"
12165
+ },
12166
+ "dayLong": {
12167
+ "sun": "Domingo",
12168
+ "mon": "Segunda-feira",
12169
+ "tue": "Terça-feira",
12170
+ "wed": "Quarta-feira",
12171
+ "thu": "Quinta-feira",
12172
+ "fri": "Sexta-feira",
12173
+ "sat": "Sábado"
12174
+ },
12175
+ "runNever": "Ainda não executado",
12176
+ "runCompleted": "Concluído",
12177
+ "runStarted": "Iniciado",
12178
+ "runAutomationMissing": "Automação ausente",
12179
+ "runAutomationMissingReason": "A automação que este agendamento inicia não existe mais.",
12180
+ "runFailed": "Falhou",
12181
+ "runFailedReason": "A execução falhou.",
12182
+ "runStopped": "Parado",
12183
+ "runStoppedByYou": "Parado por você",
12184
+ "runInterrupted": "Interrompido",
12185
+ "notScheduled": "Não agendado",
12186
+ "dueNow": "Agora",
12187
+ "overdue": "Atrasado",
12188
+ "inSeconds": "em {n} s",
12189
+ "inMinutes": "em {n} min",
12190
+ "inHoursMinutes": "em {h} h {m} min",
12191
+ "inHours": "em {h} h",
12192
+ "inDaysHours": "em {d} d {h} h",
12193
+ "inDays": "em {d} d",
12194
+ "justNow": "agora mesmo",
12195
+ "minutesAgo": "há {n} min",
12196
+ "hoursAgo": "há {n} h",
12197
+ "yesterdayAgo": "ontem",
12198
+ "daysAgo": "há {n} d",
12199
+ "today": "Hoje",
12200
+ "tomorrow": "Amanhã",
12201
+ "yesterday": "Ontem",
12202
+ "dayAt": "{day} às {time}",
12203
+ "tomorrowAt": "Amanhã {time}",
12204
+ "weekdayAt": "{day} {time}",
12205
+ "factCli": "CLI",
12206
+ "factModel": "Modelo",
12207
+ "factContext": "Contexto",
12208
+ "factThinking": "Raciocínio",
12209
+ "factMcp": "Ferramentas e servidores MCP",
12210
+ "factAccount": "Conta OpenAI",
12211
+ "factBrowser": "Navegador",
12212
+ "valueDefault": "Padrão",
12213
+ "valueOn": "Ativado",
12214
+ "valueOff": "Desativado",
12215
+ "context1m": "1M de tokens",
12216
+ "contextExtended": "Estendido",
12217
+ "effort": {
12218
+ "none": "Nenhum",
12219
+ "minimal": "Mínimo",
12220
+ "low": "Baixo",
12221
+ "medium": "Médio",
12222
+ "high": "Alto",
12223
+ "xhigh": "Muito alto",
12224
+ "max": "Máximo",
12225
+ "ultra": "Ultra",
12226
+ "thinking": "Raciocínio"
12227
+ }
12228
+ }
12229
+ },
12230
+ "crashNotice": {
12231
+ "title": "O servidor do SynaBun parou de forma inesperada e foi reiniciado automaticamente.",
12232
+ "whenToday": "Aconteceu às {time}.",
12233
+ "whenEarlier": "Aconteceu em {date}, às {time}.",
12234
+ "whenManyToday": "Aconteceu {count} vezes; a última às {time}.",
12235
+ "whenManyEarlier": "Aconteceu {count} vezes; a última em {date}, às {time}.",
12236
+ "how": "Como terminou: {exit}.",
12237
+ "lostTitle": "O que o reinício encerrou",
12238
+ "lostTerminals": "Os terminais abertos foram fechados.",
12239
+ "lostRuns": "As execuções de agentes e os loops em andamento foram interrompidos, mas uma etapa que já estava em curso ainda pode terminar sozinha. Os timers e as execuções na fila foram descartados. Os agendamentos salvos continuam valendo.",
12240
+ "lostReplies": "Respostas que estavam sendo escritas nos painéis laterais ou no Assistente podem ter sido interrompidas. As conversas foram mantidas: envie de novo o que não terminou.",
12241
+ "lostBrowser": "As sessões do navegador que o SynaBun controlava foram encerradas. Os logins salvos foram mantidos.",
12242
+ "lostTunnel": "O endereço público, se estava ativo, foi desligado. Ao ligá-lo de novo, ele terá um novo endereço.",
12243
+ "lostTunnelUnknown": "O endereço público, se estava ativo, pode continuar aberto: o SynaBun não conseguiu encerrar o cloudflared que o servia. Encerrar esse processo, ou reiniciar o computador, o fecha.",
12244
+ "openLogs": "Abrir logs",
12245
+ "openLogsFailed": "Não foi possível abrir a pasta de logs.",
12246
+ "dismiss": "Dispensar",
12247
+ "label": "Servidor reiniciado após uma falha",
12248
+ "exitCode": "código de saída {code}",
12249
+ "exitText": "{status}, {kind}",
12250
+ "kindNativeCrash": "falha nativa",
12251
+ "kindOutOfMemory": "sem memória",
12252
+ "kindNodeFatal": "erro fatal do Node.js",
12253
+ "kindError": "parou por um erro",
12254
+ "kindKilled": "encerrado à força",
12255
+ "kindInterrupted": "interrompido"
12256
+ },
12257
+ "ownerAuthority": {
12258
+ "proxyRefused": "Seu navegador chega ao SynaBun por meio de {name} (pid {pid}), um proxy ou relay, então o SynaBun não consegue confirmar que é você e recusou isto. Deixe o navegador se conectar diretamente: adicione localhost e 127.0.0.1 à lista de exceções do proxy (macOS: Ajustes do Sistema › Rede › sua rede › Detalhes › Proxies › Ignorar as configurações de proxy para estes Hosts e Domínios; ou a lista do app de proxy ou da extensão do navegador), ou desative o proxy para o SynaBun e recarregue a página."
12259
+ },
12260
+ "toolList": {
12261
+ "label": "Ferramentas e servidores MCP",
12262
+ "defaultTools": "Ferramentas padrão",
12263
+ "default": "Padrão",
12264
+ "templateDefault": "Padrão da automação",
12265
+ "noOverride": "Sem substituição",
12266
+ "all": "Todas as ferramentas do SynaBun",
12267
+ "alwaysOn": "Ferramentas sempre disponíveis",
12268
+ "count": "{count} ferramentas",
12269
+ "browser": "Navegador e redes sociais",
12270
+ "workspace": "Área de trabalho",
12271
+ "other": "Outras",
12272
+ "addedBrowser": "Adicionado para uso do navegador",
12273
+ "addedDesign": "Adicionado para trabalho de design",
12274
+ "focus": "Carrega todas as ferramentas do SynaBun sob demanda.",
12275
+ "strict": "Carrega os grupos selecionados do SynaBun.",
12276
+ "future": "Vale para novos ambientes de execução. Sessões em andamento mantêm suas próprias ferramentas.",
12277
+ "servers": "Seus outros servidores MCP",
12278
+ "agentAccess": "Agentes podem usá-lo",
12279
+ "agentAccessHelp": "Aplica-se a workers e automações do Codex, OpenCode e Claude, incluindo FleetView, e ao seletor de ferramentas do OpenCode. Outras sessões controladas por você mantêm seus servidores.",
12280
+ "loadFailed": "Não foi possível carregar o catálogo de ferramentas. Tente novamente.",
12281
+ "saveFailed": "Não foi possível salvar a lista de ferramentas. Tente novamente.",
12282
+ "saved": "Ferramentas padrão salvas.",
12283
+ "reloadFailed": "O OpenCode não conseguiu recarregar as ferramentas solicitadas.",
12284
+ "countOne": "{count} ferramenta",
12285
+ "allServers": "Todos os meus servidores",
12286
+ "noServers": "Nenhum servidor externo",
12287
+ "blockedServer": "Bloqueado em Agentes podem usar",
12288
+ "unavailableServer": "Indisponível neste provedor",
12289
+ "configuredExternally": "Configurado no provedor"
12290
+ },
12291
+ "toolGroups": {
12292
+ "browser": {
12293
+ "label": "Navegador",
12294
+ "purpose": "Abra páginas, clique, digite, leia e capture telas no navegador do SynaBun"
12295
+ },
12296
+ "browser_twitter": {
12297
+ "label": "Twitter/X",
12298
+ "purpose": "Leia publicações do X e confira o editor antes de publicar"
12299
+ },
12300
+ "browser_facebook": {
12301
+ "label": "Facebook",
12302
+ "purpose": "Leia feeds e grupos do Facebook, confira o editor e mantenha listas de publicação nos grupos"
12303
+ },
12304
+ "browser_tiktok": {
12305
+ "label": "TikTok",
12306
+ "purpose": "Leia vídeos, resultados de busca, Studio e perfis do TikTok"
12307
+ },
12308
+ "browser_whatsapp": {
12309
+ "label": "WhatsApp",
12310
+ "purpose": "Leia conversas e mensagens do WhatsApp Web"
12311
+ },
12312
+ "browser_instagram": {
12313
+ "label": "Instagram",
12314
+ "purpose": "Leia feeds, perfis, publicações, reels e buscas do Instagram"
12315
+ },
12316
+ "browser_linkedin": {
12317
+ "label": "LinkedIn",
12318
+ "purpose": "Leia feeds, perfis, publicações, notificações, mensagens, pessoas, rede e vagas do LinkedIn"
12319
+ },
12320
+ "browser_bluesky": {
12321
+ "label": "BlueSky",
12322
+ "purpose": "Leia, publique, interaja e envie mensagens no BlueSky pela aba conectada"
12323
+ },
12324
+ "gsc": {
12325
+ "label": "Google Search Console",
12326
+ "purpose": "Search Console no navegador: desempenho, indexação, relatórios e configurações da propriedade"
12327
+ },
12328
+ "youtube": {
12329
+ "label": "YouTube",
12330
+ "purpose": "YouTube Studio no navegador: encontre e baixe trailers, envie, edite, agende, gerencie playlists e veja análises"
12331
+ },
12332
+ "discord": {
12333
+ "label": "Discord",
12334
+ "purpose": "Administre um servidor do Discord e envie mensagens pelo bot"
12335
+ },
12336
+ "whiteboard": {
12337
+ "label": "Quadro branco",
12338
+ "purpose": "Desenhe, leia e capture telas do quadro branco do SynaBun"
12339
+ },
12340
+ "card": {
12341
+ "label": "Cartões",
12342
+ "purpose": "Abra, atualize e capture telas dos cartões de memória"
12343
+ },
12344
+ "git": {
12345
+ "label": "Git",
12346
+ "purpose": "Status, diferenças, commits, histórico e branches do Git"
12347
+ },
12348
+ "image": {
12349
+ "label": "Imagens",
12350
+ "purpose": "Liste ou limpe as imagens preparadas para esta sessão"
12351
+ },
12352
+ "styleguide": {
12353
+ "label": "Guia de estilo",
12354
+ "purpose": "Marca, tokens de design e DESIGN.md de um projeto"
12355
+ },
12356
+ "morelogin": {
12357
+ "label": "MoreLogin",
12358
+ "purpose": "Gerencie perfis de navegador do MoreLogin e escolha o navegador usado pelas ferramentas"
12359
+ },
12360
+ "tictactoe": {
12361
+ "label": "Jogo da velha",
12362
+ "purpose": "Jogue o jogo da velha no tabuleiro"
12363
+ }
12364
+ },
12365
+ "codexPanel": {
12366
+ "newSession": "Nova sessão",
12367
+ "savedSession": "Sessão salva",
12368
+ "fileChange": "Alteração de arquivo",
12369
+ "filesUpdated": "Alterações aplicadas",
12370
+ "fileUpdates": "Alterações de arquivos",
12371
+ "message": "Mensagem para o Codex…",
12372
+ "rename": "Renomear sessão",
12373
+ "newTab": "Nova aba do Codex",
12374
+ "minimize": "Minimizar",
12375
+ "closeTab": "Fechar aba atual",
12376
+ "slide": "Deslizar painel",
12377
+ "project": "Projeto",
12378
+ "branch": "Branch",
12379
+ "recallProfile": "Perfil de memória",
12380
+ "changelog": "Gerar changelog",
12381
+ "talk": "Segure para falar",
12382
+ "send": "Enviar",
12383
+ "attach": "Anexar imagens",
12384
+ "usage": "Abrir uso do Codex",
12385
+ "effort": "Esforço de raciocínio",
12386
+ "planOff": "Modo de plano: desativado",
12387
+ "autoOff": "Aceitação automática: desativada",
12388
+ "contextDefault": "Contexto: padrão do provedor",
12389
+ "effortLabel": "Esforço",
12390
+ "plan": "Plano",
12391
+ "auto": "Auto",
12392
+ "default": "Padrão",
12393
+ "quick": "Rápido",
12394
+ "balanced": "Equilibrado",
12395
+ "deep": "Profundo",
12396
+ "custom": "Personalizado",
12397
+ "status_pending": "pendente",
12398
+ "status_completed": "concluído",
12399
+ "status_complete": "concluído",
12400
+ "status_inProgress": "em andamento",
12401
+ "status_failed": "falhou",
12402
+ "status_declined": "recusado",
12403
+ "effort_minimal": "Mínimo",
12404
+ "effort_low": "Baixo",
12405
+ "effort_medium": "Médio",
12406
+ "effort_high": "Alto",
12407
+ "effort_xhigh": "Extra alto",
12408
+ "effort_max": "Máximo",
12409
+ "extended": "Estendido",
12410
+ "reasoning": "Resumo do raciocínio",
12411
+ "working": "Analisando o próximo passo",
12412
+ "noReasoning": "Nenhum resumo do raciocínio foi fornecido.",
12413
+ "waitingReasoning": "Aguardando resumo do raciocínio…",
12414
+ "filesChanged": "Arquivos alterados",
12415
+ "pendingFiles": "Alterações de arquivos pendentes",
12416
+ "live": "ao vivo",
12417
+ "copyPatch": "Copiar patch",
12418
+ "filesLimit": "Demais arquivos omitidos: prévia limitada a 100 arquivos.",
12419
+ "binary": "Arquivo binário; diff de texto indisponível.",
12420
+ "oversized": "Patch grande demais; exibição omitida (limite de 200.000 caracteres / 2.000 linhas por arquivo). É possível copiar o patch.",
12421
+ "patchMissing": "Patch não fornecido ou fora do formato de diff unificado.",
12422
+ "fewerLines": "Mostrar menos linhas",
12423
+ "fullDiff": "Mostrar diff completo ({count} linhas)",
12424
+ "oneFileChange": "1 alteração de arquivo",
12425
+ "fileChanges": "{count} alterações de arquivos",
12426
+ "diff_added": "adicionado",
12427
+ "diff_deleted": "excluído",
12428
+ "diff_modified": "modificado",
12429
+ "diff_renamed": "renomeado"
8959
12430
  }
8960
12431
  }