@maudecode/talaria-web 1.21.0 → 1.23.2
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.
- package/_release.json +4 -4
- package/dist/api/automation-router.d.ts +14 -14
- package/dist/api/chat-router.d.ts +225 -68
- package/dist/api/groups-router.d.ts +764 -0
- package/dist/api/groups-router.js +79 -0
- package/dist/api/groups-router.js.map +1 -0
- package/dist/api/raw-routes.d.ts +1 -1
- package/dist/api/raw-routes.js +15 -3
- package/dist/api/raw-routes.js.map +1 -1
- package/dist/api/router.d.ts +41 -0
- package/dist/api/router.js +2 -0
- package/dist/api/router.js.map +1 -1
- package/dist/api/sessions-router.d.ts +590 -160
- package/dist/api/sessions-router.js +14 -14
- package/dist/api/sessions-router.js.map +1 -1
- package/dist/api/settings-router.d.ts +948 -1
- package/dist/api/settings-router.js +54 -2
- package/dist/api/settings-router.js.map +1 -1
- package/dist/api/sse-routes.d.ts +1 -1
- package/dist/api/sse-routes.js +11 -3
- package/dist/api/sse-routes.js.map +1 -1
- package/dist/api/tools-raw.js +27 -136
- package/dist/api/tools-raw.js.map +1 -1
- package/dist/api/tools-router.d.ts +109 -24
- package/dist/api/tools-router.js +69 -9
- package/dist/api/tools-router.js.map +1 -1
- package/dist/app.js +5 -1
- package/dist/app.js.map +1 -1
- package/dist/auth/gate.js +5 -1
- package/dist/auth/gate.js.map +1 -1
- package/dist/cli/ctl.d.ts +5 -2
- package/dist/cli/ctl.js +90 -42
- package/dist/cli/ctl.js.map +1 -1
- package/dist/config/agent-config.d.ts +6 -1
- package/dist/config/agent-config.js +75 -3
- package/dist/config/agent-config.js.map +1 -1
- package/dist/feedback.d.ts +21 -0
- package/dist/feedback.js +328 -0
- package/dist/feedback.js.map +1 -0
- package/dist/fs/stat.d.ts +2 -0
- package/dist/fs/stat.js +4 -0
- package/dist/fs/stat.js.map +1 -1
- package/dist/http/context.d.ts +10 -1
- package/dist/http/context.js +0 -6
- package/dist/http/context.js.map +1 -1
- package/dist/http/pinned.js +19 -8
- package/dist/http/pinned.js.map +1 -1
- package/dist/providers/catalog.d.ts +10 -2
- package/dist/providers/catalog.js +113 -15
- package/dist/providers/catalog.js.map +1 -1
- package/dist/redact.js +9 -3
- package/dist/redact.js.map +1 -1
- package/dist/release.d.ts +14 -1
- package/dist/release.js +40 -2
- package/dist/release.js.map +1 -1
- package/dist/runtime.js +29 -5
- package/dist/runtime.js.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/sessions/anchor.d.ts +3 -2
- package/dist/sessions/anchor.js +11 -10
- package/dist/sessions/anchor.js.map +1 -1
- package/dist/sessions/cli-sessions.js +11 -6
- package/dist/sessions/cli-sessions.js.map +1 -1
- package/dist/sessions/compress.d.ts +10 -9
- package/dist/sessions/compress.js +31 -20
- package/dist/sessions/compress.js.map +1 -1
- package/dist/sessions/gateway-sessions.d.ts +11 -0
- package/dist/sessions/gateway-sessions.js +79 -24
- package/dist/sessions/gateway-sessions.js.map +1 -1
- package/dist/sessions/gateway-watcher.js +8 -4
- package/dist/sessions/gateway-watcher.js.map +1 -1
- package/dist/sessions/groups.d.ts +60 -0
- package/dist/sessions/groups.js +339 -0
- package/dist/sessions/groups.js.map +1 -0
- package/dist/sessions/list.d.ts +8 -3
- package/dist/sessions/list.js +17 -6
- package/dist/sessions/list.js.map +1 -1
- package/dist/sessions/merge.d.ts +14 -5
- package/dist/sessions/merge.js +42 -13
- package/dist/sessions/merge.js.map +1 -1
- package/dist/sessions/pending.d.ts +1 -1
- package/dist/sessions/pending.js +15 -6
- package/dist/sessions/pending.js.map +1 -1
- package/dist/sessions/prefix-index.d.ts +1 -14
- package/dist/sessions/prefix-index.js +1 -50
- package/dist/sessions/prefix-index.js.map +1 -1
- package/dist/sessions/reasoning-display.d.ts +2 -0
- package/dist/sessions/reasoning-display.js +31 -0
- package/dist/sessions/reasoning-display.js.map +1 -0
- package/dist/sessions/relay.d.ts +34 -2
- package/dist/sessions/relay.js +84 -7
- package/dist/sessions/relay.js.map +1 -1
- package/dist/sessions/service.d.ts +7 -2
- package/dist/sessions/service.js +106 -64
- package/dist/sessions/service.js.map +1 -1
- package/dist/sessions/session.d.ts +6 -0
- package/dist/sessions/session.js +13 -0
- package/dist/sessions/session.js.map +1 -1
- package/dist/sessions/shares.d.ts +3 -1
- package/dist/sessions/shares.js +33 -11
- package/dist/sessions/shares.js.map +1 -1
- package/dist/sessions/source-kind.js +2 -0
- package/dist/sessions/source-kind.js.map +1 -1
- package/dist/sessions/state-db.d.ts +2 -1
- package/dist/sessions/state-db.js +12 -5
- package/dist/sessions/state-db.js.map +1 -1
- package/dist/sessions/storage/json-documents.js +2 -0
- package/dist/sessions/storage/json-documents.js.map +1 -1
- package/dist/sessions/store.d.ts +1 -0
- package/dist/sessions/store.js +10 -3
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/streams.d.ts +7 -2
- package/dist/sessions/streams.js +16 -6
- package/dist/sessions/streams.js.map +1 -1
- package/dist/sessions/titles.d.ts +2 -0
- package/dist/sessions/titles.js +11 -0
- package/dist/sessions/titles.js.map +1 -1
- package/dist/sessions/todo.js +10 -1
- package/dist/sessions/todo.js.map +1 -1
- package/dist/sessions/turn.js +50 -21
- package/dist/sessions/turn.js.map +1 -1
- package/dist/settings.js +6 -1
- package/dist/settings.js.map +1 -1
- package/dist/sidecar/client.d.ts +3 -0
- package/dist/sidecar/client.js +2 -1
- package/dist/sidecar/client.js.map +1 -1
- package/dist/sidecar/discover.js +3 -2
- package/dist/sidecar/discover.js.map +1 -1
- package/dist/spa.js +1 -1
- package/dist/spa.js.map +1 -1
- package/dist/test/group-fixture.d.ts +66 -0
- package/dist/test/group-fixture.js +89 -0
- package/dist/test/group-fixture.js.map +1 -0
- package/dist/test/harness.d.ts +3 -0
- package/dist/test/harness.js +3 -0
- package/dist/test/harness.js.map +1 -1
- package/dist/tools/connectors.d.ts +9 -1
- package/dist/tools/connectors.js +48 -0
- package/dist/tools/connectors.js.map +1 -1
- package/dist/tools/gateway-restart.d.ts +1 -1
- package/dist/tools/insights.d.ts +3 -0
- package/dist/tools/insights.js +6 -7
- package/dist/tools/insights.js.map +1 -1
- package/dist/tools/skills.d.ts +6 -0
- package/dist/tools/skills.js +17 -0
- package/dist/tools/skills.js.map +1 -1
- package/dist/tools/update-notifications.d.ts +2 -0
- package/dist/tools/update-notifications.js +7 -3
- package/dist/tools/update-notifications.js.map +1 -1
- package/dist/tools/updates.d.ts +26 -9
- package/dist/tools/updates.js +144 -47
- package/dist/tools/updates.js.map +1 -1
- package/dist/workspace/fs.d.ts +2 -0
- package/dist/workspace/fs.js +63 -1
- package/dist/workspace/fs.js.map +1 -1
- package/dist/workspace/media-refs.js +10 -3
- package/dist/workspace/media-refs.js.map +1 -1
- package/dist/workspace/upload.d.ts +1 -1
- package/dist/workspace/upload.js +52 -37
- package/dist/workspace/upload.js.map +1 -1
- package/dist/workspace/workspaces.d.ts +5 -1
- package/dist/workspace/workspaces.js +32 -6
- package/dist/workspace/workspaces.js.map +1 -1
- package/package.json +4 -3
- package/sidecar/agent_importer.json +8 -0
- package/sidecar/scripts/agent_importer_contract.py +19 -0
- package/sidecar/scripts/suite_runner.py +55 -8
- package/sidecar/scripts/test.sh +3 -1
- package/sidecar/talaria_sidecar/__init__.py +1 -1
- package/sidecar/talaria_sidecar/home.py +12 -5
- package/sidecar/talaria_sidecar/methods/__init__.py +2 -2
- package/sidecar/talaria_sidecar/methods/agent_imports.py +346 -0
- package/sidecar/talaria_sidecar/methods/chat.py +141 -58
- package/sidecar/talaria_sidecar/methods/commands.py +6 -4
- package/sidecar/talaria_sidecar/methods/config.py +8 -3
- package/sidecar/talaria_sidecar/methods/connectors.py +138 -4
- package/sidecar/talaria_sidecar/methods/dashboard_plugins.py +21 -0
- package/sidecar/talaria_sidecar/methods/delegation.py +126 -0
- package/sidecar/talaria_sidecar/methods/gateway.py +5 -0
- package/sidecar/talaria_sidecar/methods/gateway_sessions.py +35 -6
- package/sidecar/talaria_sidecar/methods/groups.py +120 -0
- package/sidecar/talaria_sidecar/methods/memory.py +27 -3
- package/sidecar/talaria_sidecar/methods/nous_account.py +130 -0
- package/sidecar/talaria_sidecar/methods/oauth.py +25 -4
- package/sidecar/talaria_sidecar/methods/outbound_drafts.py +1 -19
- package/sidecar/talaria_sidecar/methods/plugin_catalog.py +73 -2
- package/sidecar/talaria_sidecar/methods/providers.py +51 -1
- package/sidecar/talaria_sidecar/methods/skill_revisions.py +177 -0
- package/sidecar/talaria_sidecar/methods/skills.py +10 -0
- package/sidecar/talaria_sidecar/methods/tts.py +67 -0
- package/sidecar/talaria_sidecar/rpc.py +11 -2
- package/static/dist/FILES.txt +154 -143
- package/static/dist/THIRD_PARTY_LICENSES.md +1 -1
- package/static/dist/assets/AppShell-jwd95ofg.js +8 -0
- package/static/dist/assets/{Button-nuaikybd.js → Button-nrcj7shj.js} +1 -1
- package/static/dist/assets/ChatPage-fmgk8xpk.js +2 -0
- package/static/dist/assets/Composer-oya4ggu7.js +5 -0
- package/static/dist/assets/ConnectTargets-rg90uiui.js +1 -0
- package/static/dist/assets/Dialog-gk0uatl8.js +1 -0
- package/static/dist/assets/ExtensionRoute-ji4xce9l.js +1 -0
- package/static/dist/assets/HubRoute-2pgy4aa2.js +2 -0
- package/static/dist/assets/Markdown-d6br42ts.js +2 -0
- package/static/dist/assets/{MarkdownRenderer-ccgqrza3.js → MarkdownRenderer-k8rmb83g.js} +6 -6
- package/static/dist/assets/OAuthSignIn-pbls9ljk.js +1 -0
- package/static/dist/assets/QueueCard-liib58ru.js +1 -0
- package/static/dist/assets/ResourceSwitch-gtdv2jgs.js +1 -0
- package/static/dist/assets/RightPanel-b89e4kx3.js +1 -0
- package/static/dist/assets/Select-l6qybenp.js +1 -0
- package/static/dist/assets/SessionListPanel-l4vy95j8.js +1 -0
- package/static/dist/assets/SettingsLayout-chw7pl2m.js +1 -0
- package/static/dist/assets/TerminalPanel-qrd0gkx7.js +16 -0
- package/static/dist/assets/Toaster-ihzgaq9z.js +1 -0
- package/static/dist/assets/_app-cn1au4zq.js +1 -0
- package/static/dist/assets/{_app.ext._extensionId-n797jp72.js → _app.ext._extensionId-m4npkrr0.js} +1 -1
- package/static/dist/assets/_app.groups-c8ycbp5n.js +1 -0
- package/static/dist/assets/{_app.index-ne43mdw2.js → _app.index-f1fckz3h.js} +1 -1
- package/static/dist/assets/{_app.insights-fqonovb4.js → _app.insights-ezivk7ad.js} +1 -1
- package/static/dist/assets/{_app.kanban-kysliv19.js → _app.kanban-zbkeov0f.js} +1 -1
- package/static/dist/assets/{_app.logs-febut82r.js → _app.logs-dqam5zyz.js} +1 -1
- package/static/dist/assets/{_app.memory-ha86oj1c.js → _app.memory-gzxkm3a0.js} +1 -1
- package/static/dist/assets/{_app.profiles-cnu3gxxq.js → _app.profiles-j28l31hl.js} +1 -1
- package/static/dist/assets/{_app.session._sessionId-ifzjpcgn.js → _app.session._sessionId-55egsufs.js} +1 -1
- package/static/dist/assets/{_app.settings-nmakdiaf.js → _app.settings-f5ltpieb.js} +1 -1
- package/static/dist/assets/_app.settings._section-dda0vfot.js +3 -0
- package/static/dist/assets/{_app.skills-f3wad8yo.js → _app.skills-kuc81hq0.js} +1 -1
- package/static/dist/assets/_app.tasks-gyy6vj5l.js +1 -0
- package/static/dist/assets/{_app.todos-bml1m3r1.js → _app.todos-d0xoy68t.js} +1 -1
- package/static/dist/assets/{_app.workspaces-f3d066lx.js → _app.workspaces-pawp2gxk.js} +1 -1
- package/static/dist/assets/_delete-qnxuo87s.js +1 -0
- package/static/dist/assets/{abnfDiagram-VCTEODGH-i53jc4yp.js → abnfDiagram-VCTEODGH-mhav7n5a.js} +1 -1
- package/static/dist/assets/{architecture-7GRP2DOG-e3bv5m6f.js → architecture-7GRP2DOG-ozbanukt.js} +1 -1
- package/static/dist/assets/{architectureDiagram-5GKGNRK7-pakekxu2.js → architectureDiagram-5GKGNRK7-febtor5m.js} +1 -1
- package/static/dist/assets/archive-gyk9c34a.js +1 -0
- package/static/dist/assets/autoReadClaim-nlyv8tu9.js +1 -0
- package/static/dist/assets/{blockDiagram-I7D4REHJ-bc6bo1n6.js → blockDiagram-I7D4REHJ-ocais2jf.js} +1 -1
- package/static/dist/assets/{c4Diagram-7LVT6UL2-btvwk2qx.js → c4Diagram-7LVT6UL2-cgpfjx5f.js} +1 -1
- package/static/dist/assets/channel-els5ri1f.js +1 -0
- package/static/dist/assets/{chunk-4HAMMTFA-dlwab11c.js → chunk-4HAMMTFA-hvqdiiow.js} +1 -1
- package/static/dist/assets/{chunk-75Z2AOVW-dp5gh7i8.js → chunk-75Z2AOVW-hxbulvtb.js} +1 -1
- package/static/dist/assets/{chunk-DU6HZSFF-bi06zl1c.js → chunk-DU6HZSFF-kkp6a7gp.js} +3 -3
- package/static/dist/assets/{chunk-F27PBJKO-kvv1rnlh.js → chunk-F27PBJKO-ljz0gssc.js} +1 -1
- package/static/dist/assets/{chunk-GMAD6QVW-ji0rx9by.js → chunk-GMAD6QVW-bo0enyxn.js} +1 -1
- package/static/dist/assets/{chunk-GVQU2GXP-nmz0j82p.js → chunk-GVQU2GXP-cnq7l2v6.js} +1 -1
- package/static/dist/assets/{chunk-IMKFNOWR-kmi1qx88.js → chunk-IMKFNOWR-gjnkrfu6.js} +1 -1
- package/static/dist/assets/{chunk-L3NEJ4N5-xhb7mebj.js → chunk-L3NEJ4N5-gjfp71qi.js} +1 -1
- package/static/dist/assets/{chunk-OSK3NFVY-5a9sgscq.js → chunk-OSK3NFVY-ieq5r94b.js} +1 -1
- package/static/dist/assets/{chunk-P2QGCYS3-dfezp4vu.js → chunk-P2QGCYS3-hdefjk56.js} +1 -1
- package/static/dist/assets/{chunk-POPQ4Y6H-gd2vq3c0.js → chunk-POPQ4Y6H-mcbt8wpr.js} +1 -1
- package/static/dist/assets/{chunk-PWAF6VOD-wvw2nksf.js → chunk-PWAF6VOD-mx2drja9.js} +1 -1
- package/static/dist/assets/{chunk-SHT3W25Y-f58q97px.js → chunk-SHT3W25Y-j7dd9i66.js} +1 -1
- package/static/dist/assets/{chunk-SVP7TREG-abgwpyz9.js → chunk-SVP7TREG-jcnt3lxt.js} +1 -1
- package/static/dist/assets/{chunk-TICWLB2K-h4sbs8ds.js → chunk-TICWLB2K-lrwv5hx9.js} +1 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-krpt9pdd.js +1 -0
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-krpt9pdd.js +1 -0
- package/static/dist/assets/completionAudio-fhxf0h9j.js +1 -0
- package/static/dist/assets/{copy-m9h56qa8.js → copy-gyzrqmyr.js} +1 -1
- package/static/dist/assets/{cynefin-OW5HDTMX-g081vffs.js → cynefin-OW5HDTMX-heq36srt.js} +1 -1
- package/static/dist/assets/{cynefinDiagram-5FMLGOSQ-odxvjesk.js → cynefinDiagram-5FMLGOSQ-crrmq338.js} +1 -1
- package/static/dist/assets/{dagre-GXQ25YYZ-cpdwzjs4.js → dagre-GXQ25YYZ-m7fpnt6k.js} +1 -1
- package/static/dist/assets/{diagram-S7CK7UJ4-clv5mxvu.js → diagram-S7CK7UJ4-ebm1ebv6.js} +1 -1
- package/static/dist/assets/{diagram-UQ7AKVKN-m2ia1mbf.js → diagram-UQ7AKVKN-hc0ypsp1.js} +1 -1
- package/static/dist/assets/{diagram-VSXAHHWV-ea6zv636.js → diagram-VSXAHHWV-mu8q5n4b.js} +1 -1
- package/static/dist/assets/{diagram-VX7I27RA-oqlef685.js → diagram-VX7I27RA-i488wdlb.js} +1 -1
- package/static/dist/assets/{diagram-Z3DM3KII-kjubcbwu.js → diagram-Z3DM3KII-gz3nwvq9.js} +1 -1
- package/static/dist/assets/{dist-carq1azj.js → dist-ge7hom9n.js} +4 -4
- package/static/dist/assets/{dist-crc46di9.js → dist-kpg5ccm9.js} +1 -1
- package/static/dist/assets/{ebnfDiagram-PWID7BFC-fg0zri3e.js → ebnfDiagram-PWID7BFC-lwskecx4.js} +1 -1
- package/static/dist/assets/{erDiagram-RLTQ6QDP-eb7pmk3x.js → erDiagram-RLTQ6QDP-c0bysigr.js} +1 -1
- package/static/dist/assets/{eventmodeling-NTZA5JFV-gvi1fxhn.js → eventmodeling-NTZA5JFV-k19e509j.js} +1 -1
- package/static/dist/assets/feedbackVideo.worker-JBVT3sDD.js +480 -0
- package/static/dist/assets/flowDiagram-HODETNUW-n4m8e6kq.js +1 -0
- package/static/dist/assets/folder-plus-m1ywe0cv.js +1 -0
- package/static/dist/assets/{ganttDiagram-EL5Y4UJY-jmisowrc.js → ganttDiagram-EL5Y4UJY-mz1p8yzt.js} +1 -1
- package/static/dist/assets/getPseudoElementBounds-ci0x9gki.js +1 -0
- package/static/dist/assets/{gitGraph-4MIJSDKK-m7kt3u6e.js → gitGraph-4MIJSDKK-h0uskiog.js} +1 -1
- package/static/dist/assets/{gitGraphDiagram-WWUBYQGX-nq7vfzh2.js → gitGraphDiagram-WWUBYQGX-e4d9um1j.js} +1 -1
- package/static/dist/assets/group_discussions-fk5hry4l.js +1 -0
- package/static/dist/assets/{highlighted-body-KPVGNVTW-gcu017ay.js → highlighted-body-KPVGNVTW-d47n6oqu.js} +1 -1
- package/static/dist/assets/{host-ipp4e84c.js → host-f7eudvft.js} +1 -1
- package/static/dist/assets/index-lab8g9gs.css +2 -0
- package/static/dist/assets/index-n5rg2q2r.js +13 -0
- package/static/dist/assets/{info-A6RAGUB7-idazwfqe.js → info-A6RAGUB7-k04of9c6.js} +1 -1
- package/static/dist/assets/{infoDiagram-27XIBGKW-bb9jh8gl.js → infoDiagram-27XIBGKW-l98n1tgz.js} +1 -1
- package/static/dist/assets/{ishikawaDiagram-5VMMS53U-nqc132rv.js → ishikawaDiagram-5VMMS53U-gkznu2d6.js} +1 -1
- package/static/dist/assets/{journeyDiagram-3NMN7TZE-fpvnhy44.js → journeyDiagram-3NMN7TZE-mt23qvx1.js} +1 -1
- package/static/dist/assets/{kanban-definition-UXKFOSKX-ndzqm6fu.js → kanban-definition-UXKFOSKX-ab93l7y5.js} +1 -1
- package/static/dist/assets/katex-ic33v820.js +257 -0
- package/static/dist/assets/katex-qcv7xo0t.css +1 -0
- package/static/dist/assets/{lazyRouteComponent-javud235.js → lazyRouteComponent-dt9efiqk.js} +1 -1
- package/static/dist/assets/{line-g625e7cj.js → line-dkm9r3as.js} +1 -1
- package/static/dist/assets/link-2-ozyjqwhh.js +1 -0
- package/static/dist/assets/{link-gfdaho08.js → link-dip3g6zs.js} +1 -1
- package/static/dist/assets/{locale-cs-n41hptse.js → locale-cs-brltdkcp.js} +1 -1
- package/static/dist/assets/{locale-de-k7ht47ew.js → locale-de-h6e9oq6v.js} +1 -1
- package/static/dist/assets/{locale-es-ih078lco.js → locale-es-oklmh80f.js} +1 -1
- package/static/dist/assets/{locale-fr-ojabnf41.js → locale-fr-b17ozoi2.js} +1 -1
- package/static/dist/assets/{locale-it-kb96jufy.js → locale-it-whe01eef.js} +1 -1
- package/static/dist/assets/{locale-ja-jpsp3xs1.js → locale-ja-g1s0rtpc.js} +1 -1
- package/static/dist/assets/{locale-pl-dbap4leu.js → locale-pl-d9p3lqcb.js} +1 -1
- package/static/dist/assets/{locale-pt-nci7w72x.js → locale-pt-l75on74f.js} +1 -1
- package/static/dist/assets/{locale-ru-soghe4cs.js → locale-ru-wl3mbsaw.js} +1 -1
- package/static/dist/assets/{locale-tr-ks00mu68.js → locale-tr-cz87itrq.js} +1 -1
- package/static/dist/assets/{locale-vi-ij7twfm6.js → locale-vi-elqj1y4k.js} +1 -1
- package/static/dist/assets/{locale-zh-Hant-feakwr7a.js → locale-zh-Hant-hf8gqm7d.js} +1 -1
- package/static/dist/assets/{locale-zh-ren0vjyv.js → locale-zh-cdckwb0u.js} +1 -1
- package/static/dist/assets/login-go5xfzkx.js +1 -0
- package/static/dist/assets/mermaid-HWGCJPDP-o7wh7c74.js +1 -0
- package/static/dist/assets/{mermaid-parser.core-plzkuzov.js → mermaid-parser.core-c4ywstu7.js} +3 -3
- package/static/dist/assets/{mindmap-definition-YA3MSWOX-ojrgs569.js → mindmap-definition-YA3MSWOX-mnvkgz5u.js} +1 -1
- package/static/dist/assets/onboarding-hbbpvp6w.js +1 -0
- package/static/dist/assets/{packet-AYTQ26CC-gyaf9s8h.js → packet-AYTQ26CC-dfm2ygox.js} +1 -1
- package/static/dist/assets/{pegDiagram-XKGWAZYB-bf6xj8mq.js → pegDiagram-XKGWAZYB-kfbyls4v.js} +1 -1
- package/static/dist/assets/{pie-WAS4IAKB-f5ymzelo.js → pie-WAS4IAKB-jniw7r2b.js} +1 -1
- package/static/dist/assets/{pieDiagram-E7YTZNPT-d0qjl3zi.js → pieDiagram-E7YTZNPT-cir9nlg4.js} +1 -1
- package/static/dist/assets/presence-ivo54s19.js +1 -0
- package/static/dist/assets/prompt_queue_cancelled-cebcuagu.js +1 -0
- package/static/dist/assets/{quadrantDiagram-AXDQQJYC-oqy1mras.js → quadrantDiagram-AXDQQJYC-2nnb2u4m.js} +1 -1
- package/static/dist/assets/queryKeys-mbi6o5vh.js +9 -0
- package/static/dist/assets/{radar-RG4KPBEZ-b6jcjvda.js → radar-RG4KPBEZ-jfvtqhq2.js} +1 -1
- package/static/dist/assets/{railroad-74A4TZTK-e3a6lk5k.js → railroad-74A4TZTK-hnm0ikx7.js} +1 -1
- package/static/dist/assets/{railroad-abnf-HS5TGJTU-ff5hocrx.js → railroad-abnf-HS5TGJTU-hcfz5gyc.js} +1 -1
- package/static/dist/assets/{railroad-ebnf-LZEXJU2U-exkhyw4n.js → railroad-ebnf-LZEXJU2U-ocbvmcwo.js} +1 -1
- package/static/dist/assets/{railroad-peg-WCYAUIDC-jefk9b7c.js → railroad-peg-WCYAUIDC-kkbzgo8d.js} +1 -1
- package/static/dist/assets/{railroadDiagram-O6MQD6OU-e4amks1i.js → railroadDiagram-O6MQD6OU-ox5v7853.js} +1 -1
- package/static/dist/assets/rename-ccd52yws.js +1 -0
- package/static/dist/assets/{requirementDiagram-BXWQKSXE-c77k1e2y.js → requirementDiagram-BXWQKSXE-e1iq54h4.js} +1 -1
- package/static/dist/assets/{sankeyDiagram-P5KCCOFB-oa1cc52s.js → sankeyDiagram-P5KCCOFB-mmza9r2u.js} +1 -1
- package/static/dist/assets/{sequenceDiagram-WJ2MYXX4-j20gqt22.js → sequenceDiagram-WJ2MYXX4-dioic69h.js} +1 -1
- package/static/dist/assets/{share._token-kmfoflw6.js → share._token-i51g4ccy.js} +1 -1
- package/static/dist/assets/sliders-horizontal-nj1dipq4.js +1 -0
- package/static/dist/assets/{stateDiagram-D77RDMKH-co2ghkdp.js → stateDiagram-D77RDMKH-do5wvqjw.js} +1 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-f0sedx52.js +1 -0
- package/static/dist/assets/{swimlanes-42K2YHIH-m30cktqe.js → swimlanes-42K2YHIH-mhjzgtgl.js} +1 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-n0x444kc.js +8 -0
- package/static/dist/assets/{timeline-definition-24CTP7MA-liuep6fl.js → timeline-definition-24CTP7MA-i5820ppg.js} +1 -1
- package/static/dist/assets/toast-esv4ma70.js +56 -0
- package/static/dist/assets/{treeView-Q6P3EWNA-np5d2jv2.js → treeView-Q6P3EWNA-btp8feob.js} +1 -1
- package/static/dist/assets/{treemap-WGGIJYW6-cmpltxh1.js → treemap-WGGIJYW6-lv71dt7p.js} +1 -1
- package/static/dist/assets/tts-bq7ax6xp.js +1 -0
- package/static/dist/assets/{useForm-f1udzsjf.js → useForm-d5wxx0l0.js} +1 -1
- package/static/dist/assets/{useParams-ierevvts.js → useParams-gk1u0y6m.js} +1 -1
- package/static/dist/assets/{useSearch-i7nr9ypl.js → useSearch-nsrme1pf.js} +1 -1
- package/static/dist/assets/useTranscript-m9ve9mml.js +1 -0
- package/static/dist/assets/{vennDiagram-4TSXK5OY-b2g42qrg.js → vennDiagram-4TSXK5OY-bffv7e11.js} +1 -1
- package/static/dist/assets/{wardley-WFR3VGLG-lb0eqbff.js → wardley-WFR3VGLG-f1m16ivx.js} +1 -1
- package/static/dist/assets/{wardleyDiagram-VM6X3IG4-ermwaqha.js → wardleyDiagram-VM6X3IG4-ous4pq48.js} +1 -1
- package/static/dist/assets/{xychartDiagram-S5SC5T6Z-dll0jldk.js → xychartDiagram-S5SC5T6Z-jxgbp4as.js} +1 -1
- package/static/dist/index.html +1 -1
- package/static/dist/sw.js +1 -1
- package/static/dist/assets/AppShell-c5989995.js +0 -8
- package/static/dist/assets/ChatPage-bfg4khph.js +0 -6
- package/static/dist/assets/ConnectTargets-k5wo9yo8.js +0 -1
- package/static/dist/assets/Dialog-o8vo2aws.js +0 -1
- package/static/dist/assets/ExtensionRoute-l1yjrso4.js +0 -1
- package/static/dist/assets/Field-j7o8cfps.js +0 -1
- package/static/dist/assets/HubRoute-efnwe4xz.js +0 -2
- package/static/dist/assets/Markdown-clqf5m22.js +0 -2
- package/static/dist/assets/OAuthSignIn-h7bjaqp6.js +0 -1
- package/static/dist/assets/ResourceSwitch-oai2zqaj.js +0 -1
- package/static/dist/assets/RightPanel-ho161a45.js +0 -1
- package/static/dist/assets/Select-d1g5a8bm.js +0 -1
- package/static/dist/assets/SessionListPanel-i7kaokhi.js +0 -1
- package/static/dist/assets/SettingsLayout-lnecm87w.js +0 -1
- package/static/dist/assets/States-easntmry.js +0 -1
- package/static/dist/assets/TerminalPanel-lxhwd4jl.js +0 -16
- package/static/dist/assets/Toaster-l4sciy8t.js +0 -1
- package/static/dist/assets/_app-mqexqbg8.js +0 -1
- package/static/dist/assets/_app.settings._section-djglnjmi.js +0 -3
- package/static/dist/assets/_app.tasks-l10py1c0.js +0 -1
- package/static/dist/assets/archive-ihqi7z2x.js +0 -1
- package/static/dist/assets/channel-jn4f8443.js +0 -1
- package/static/dist/assets/classDiagram-ZZMXUADV-dzrw66se.js +0 -1
- package/static/dist/assets/classDiagram-v2-VYDZK3BY-dzrw66se.js +0 -1
- package/static/dist/assets/completionAudio-ce86msbu.js +0 -1
- package/static/dist/assets/flowDiagram-HODETNUW-abekab15.js +0 -1
- package/static/dist/assets/folder-plus-ksaons88.js +0 -1
- package/static/dist/assets/index-d6vbxlra.js +0 -13
- package/static/dist/assets/index-ey6qo0zx.css +0 -2
- package/static/dist/assets/katex-cbdd1ohw.css +0 -1
- package/static/dist/assets/katex-pbij2oo6.js +0 -257
- package/static/dist/assets/login-iv6yq4xf.js +0 -1
- package/static/dist/assets/mermaid-HWGCJPDP-cwj5cl6k.js +0 -1
- package/static/dist/assets/onboarding-ff4emacu.js +0 -1
- package/static/dist/assets/queryKeys-x8fjxhut.js +0 -9
- package/static/dist/assets/refresh-cw-lfp4u1oh.js +0 -1
- package/static/dist/assets/sliders-horizontal-g5jkzd9k.js +0 -1
- package/static/dist/assets/stateDiagram-v2-MP3YSRHH-faw1opgh.js +0 -1
- package/static/dist/assets/swimlanesDiagram-VR7AAH4N-hfil433g.js +0 -8
- package/static/dist/assets/toast-zmb35u3r.js +0 -56
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./registry-g7w3353u.js";var t=import.meta.url,n={_default:()=>`mặc định`,active_conversation_meta:t=>(e(`vi`,t?.count,{}),`${t?.title} · ${t?.count} tin nhắn`),active_conversation_none:()=>`Chưa chọn cuộc trò chuyện hoạt động.`,add:()=>`Thêm`,add_failed:()=>`Thêm thất bại: `,agent_soul:()=>`Linh hồn Agent`,all_uploads_failed:e=>`Toàn bộ ${e?.n} lần tải lên đều thất bại`,approval_btn_always:()=>`Luôn cho phép`,approval_btn_always_title:()=>`Luôn cho phép mẫu lệnh này`,approval_btn_deny:()=>`Từ chối`,approval_btn_deny_title:()=>`Từ chối — không chạy lệnh này`,approval_btn_once:()=>`Cho phép một lần`,approval_btn_once_title:()=>`Cho phép lệnh này một lần (Enter)`,approval_btn_session:()=>`Cho phép trong cuộc trò chuyện này`,approval_btn_session_title:()=>`Cho phép trong phiên trò chuyện này`,approval_desc_prefix:()=>`Phát hiện lệnh nguy hiểm`,approval_gateway_unsupported:()=>`Phê duyệt cần gateway mới hơn. Hãy nâng cấp Hermes gateway đang kết nối để bật tính năng này.`,approval_gateway_unsupported_label:()=>`Không hỗ trợ phê duyệt`,approval_heading:()=>`Yêu cầu phê duyệt`,approval_more:()=>`Tùy chọn khác`,approval_pending_count:e=>e?.n===1||e?.n===`1`?`${e?.n} trong ${e?.n} đang chờ`:`1 trong ${e?.n} đang chờ`,approval_responding:()=>`Đang phản hồi…`,approval_skip_all:()=>`⚡ Bỏ qua tất cả trong phiên này`,approval_skip_all_title:()=>`Bỏ qua mọi yêu cầu phê duyệt cho phiên này`,archive_extracted:e=>`Đã giải nén ${e?.n} file từ ${e?.c} archive`,auth_ack_save_failed:()=>`Cập nhật xác nhận thất bại: `,auth_acknowledged_label:()=>`Tôi đã xem rủi ro này; hiển thị cảnh báo điều hướng ít khẩn cấp hơn.`,auth_disabled:()=>`Đã tắt xác thực — đã gỡ bảo vệ mật khẩu`,auth_disabled_warning_message:()=>`Instance này có thể truy cập mà không cần xác thực.`,auth_status_passkey_only:()=>`Chỉ dùng passkey`,auth_status_password:()=>`Xác thực bằng mật khẩu`,auth_status_unauthenticated:()=>`Chưa xác thực`,auth_warning_badge:()=>`Xác thực đã tắt`,auto_compress_label:()=>`Tự động nén`,available_commands:()=>`Các lệnh khả dụng:`,available_personalities:()=>`Các personality khả dụng:`,background_line_agent_completed:e=>`Tác tử “${e?.goal}” đã hoàn tất`,background_line_agent_failed:e=>`Tác tử “${e?.goal}” thất bại`,background_line_command_failed:e=>`Lệnh nền ${e?.command} thất bại`,background_line_command_failed_exit:e=>`Lệnh nền ${e?.command} thất bại (mã thoát ${e?.code})`,background_line_command_finished:e=>`Lệnh nền ${e?.command} đã xong`,background_review_failed:()=>`Tác vụ hoặc quá trình xem xét của tác nhân chính đã thất bại.`,background_review_parent:e=>`Xem xét của tác nhân chính: ${e?.state}`,background_review_reviewed:()=>`Tác nhân chính đã xem xét kết quả này.`,background_review_reviewing:()=>`Tác nhân chính đang xem xét kết quả này.`,background_review_unknown:()=>`Chưa rõ kết quả tác vụ hoặc quá trình xem xét của tác nhân chính.`,background_review_waiting:()=>`Đang chờ tác nhân chính xem xét kết quả này.`,background_update_details:()=>`Hiện toàn bộ kết quả nền`,bg_agents_failed:e=>`${e?.n} thất bại`,bg_agents_progress:e=>`Xong ${e?.done}/${e?.total}`,bg_card_title:()=>`Công việc nền`,bg_complete:()=>`Tác vụ nền hoàn tất`,bg_error_multi:e=>`${e?.count} phiên đã gặp lỗi`,bg_error_single:e=>`"${e?.title}" đã gặp lỗi`,bg_failed:()=>`Tác vụ nền thất bại: `,bg_hide_result:()=>`Ẩn kết quả`,bg_kind_background_command:()=>`Tác vụ nền`,bg_kind_delegation:()=>`Tác tử`,bg_kind_process:()=>`Lệnh`,bg_label:()=>`Kết quả nền:`,bg_no_answer:()=>`(không có câu trả lời)`,bg_result_unavailable:()=>`Kết quả không còn nữa.`,bg_running:()=>`Đang chạy nền...`,bg_show_result:()=>`Xem kết quả`,bg_status_attention:()=>`Cần chú ý`,bg_status_cancelled:()=>`Đã dừng`,bg_status_completed:()=>`Xong`,bg_status_failed:()=>`Thất bại`,bg_status_running:()=>`Đang chạy`,bg_status_unknown:()=>`Không rõ trạng thái`,bg_usage:()=>`Cách dùng: /background <tin nhắn>`,branch_failed:()=>`Fork thất bại: `,branch_forked:()=>`Đã fork sang phiên mới`,btw_asking:()=>`Đang hỏi câu hỏi phụ...`,btw_done:()=>`Đã trả lời câu hỏi phụ`,btw_failed:()=>`Câu hỏi phụ thất bại: `,btw_label:()=>`Câu hỏi phụ — không lưu vào lịch sử`,btw_no_answer:()=>`Không nhận được câu trả lời.`,busy_interrupt_confirm:()=>`Đã ngắt — đang gửi tin nhắn mới`,busy_steer_fallback:()=>`Steer không khả dụng — đã đưa vào hàng chờ lượt tiếp theo`,cancel:()=>`Hủy`,cancel_failed:()=>`Hủy thất bại.`,cancel_unavailable:()=>`Không thể hủy.`,cancelling:()=>`Đang hủy…`,checkpoint_date:()=>`Ngày`,checkpoint_diff_files_changed:t=>(e(`vi`,t?.n,{}),`${t?.n} tệp đã thay đổi`),checkpoint_diff_no_changes:()=>`Không tìm thấy khác biệt nào giữa checkpoint này và workspace hiện tại.`,checkpoint_diff_title:()=>`Các thay đổi trong checkpoint`,checkpoint_empty:()=>`Không tìm thấy checkpoint nào cho workspace này.`,checkpoint_error:()=>`Không thể tải checkpoint`,checkpoint_files:()=>`Tệp`,checkpoint_kept_user_edits:e=>`Đã giữ các chỉnh sửa của bạn: ${e?.files}`,checkpoint_loading:()=>`Đang tải điểm khôi phục…`,checkpoint_message:()=>`Tin nhắn`,checkpoint_restore:()=>`Khôi phục`,checkpoint_restore_confirm_message:e=>`Khôi phục các tệp mà tác tử đã thay đổi kể từ điểm kiểm tra "${e?.ckpt}"? Các tệp bạn chỉnh sửa thủ công sau lần ghi cuối của nó sẽ được giữ nguyên.`,checkpoint_restore_confirm_title:()=>`Khôi phục điểm khôi phục?`,checkpoint_restore_everything:()=>`Khôi phục tất cả`,checkpoint_restored:()=>`Đã khôi phục checkpoint`,checkpoint_skipped_oversize:e=>`Quá lớn để khôi phục: ${e?.files}`,checkpoint_title:()=>`Checkpoint`,checkpoint_view_diff:()=>`Xem diff`,clarify_composer_placeholder:()=>`Nhập câu trả lời…`,clarify_composer_placeholder_choices:()=>`Chọn một lựa chọn ở trên hoặc nhập câu trả lời…`,clarify_heading:()=>`Cần làm rõ`,clarify_hint:()=>`Chọn một tùy chọn hoặc nhập câu trả lời của bạn bên dưới.`,clarify_other:()=>`Khác`,clarify_progress:e=>`Câu hỏi ${e?.a0} / ${e?.a1}`,clarify_responding:()=>`Đang phản hồi…`,clarify_send:()=>`Gửi`,clear:()=>`Xóa`,clear_conversation_btn_tooltip:()=>`Xóa toàn bộ tin nhắn trong cuộc trò chuyện này`,clear_conversation_message:()=>`Xóa toàn bộ tin nhắn? Hành động này không thể hoàn tác.`,clear_conversation_title:()=>`Xóa cuộc trò chuyện`,clear_failed:()=>`Xóa thất bại: `,close_menu:()=>`Đóng menu`,cmd_background:()=>`Chạy prompt nền`,cmd_background_usage:()=>`/background <prompt> — chạy song song không chặn`,cmd_branch:()=>`Fork cuộc trò chuyện này thành phiên mới`,cmd_branch_usage:()=>`/branch [name] — fork cuộc trò chuyện (có thể đặt tên)`,cmd_btw:()=>`Đặt câu hỏi phụ (tạm thời)`,cmd_btw_usage:()=>`/btw <question> — đặt câu hỏi phụ bằng ngữ cảnh phiên`,cmd_clear:()=>`Xóa tin nhắn cuộc trò chuyện`,cmd_compact_alias:()=>`Bí danh cũ của /compress`,cmd_compress:()=>`Nén thủ công ngữ cảnh cuộc trò chuyện (cách dùng: /compress [chủ đề])`,cmd_goal:()=>`Đặt hoặc xem mục tiêu lâu dài`,cmd_help:()=>`Hiển thị các lệnh slash khả dụng`,cmd_interrupt:()=>`Hủy lượt hiện tại và gửi tin nhắn mới`,cmd_interrupt_confirm:()=>`Đã ngắt — đang gửi tin nhắn mới`,cmd_interrupt_no_msg:()=>`Cách dùng: /interrupt <tin nhắn>`,cmd_model:()=>`Chuyển model (ví dụ: /model gpt-4o)`,cmd_new:()=>`Bắt đầu phiên chat mới`,cmd_personality:()=>`Đổi personality của agent`,cmd_queue:()=>`Đưa tin nhắn vào hàng chờ cho lượt tiếp theo`,cmd_queue_confirm:()=>`Đã đưa tin nhắn vào hàng chờ`,cmd_queue_no_msg:()=>`Cách dùng: /queue <tin nhắn>`,cmd_queue_not_busy:()=>`Không có tác vụ hoạt động — cứ gửi bình thường`,cmd_reasoning:()=>`Bật/tắt hiển thị suy nghĩ (show/hide), đặt mức effort hoặc kiểm tra trạng thái hiện tại`,cmd_retry:()=>`Gửi lại tin nhắn cuối`,cmd_skills:()=>`Liệt kê các kỹ năng Hermes khả dụng`,cmd_status:()=>`Hiển thị thông tin phiên`,cmd_steer:()=>`Chèn điều chỉnh giữa lượt mà không ngắt agent`,cmd_steer_fallback:()=>`Steer không khả dụng — đã đưa vào hàng chờ lượt tiếp theo`,cmd_steer_no_msg:()=>`Cách dùng: /steer <tin nhắn>`,cmd_stop:()=>`Dừng phản hồi hiện tại`,cmd_terminal:()=>`Mở terminal của không gian làm việc`,cmd_theme:()=>`Đổi giao diện (theme: system/dark/light, skin: default/ares/mono/graphite/slate/poseidon/sisyphus/charizard/sienna/catppuccin/nous/geist-contrast/zeus/verdigris)`,cmd_title:()=>`Lấy hoặc đặt tiêu đề phiên`,cmd_undo:()=>`Xóa lượt trao đổi cuối`,cmd_usage:()=>`Bật/tắt hiển thị token usage`,cmd_use:()=>`Ép dùng một skill cho tin nhắn tiếp theo`,cmd_voice:()=>`Bật/tắt nhập microphone`,cmd_voice_use_mic:()=>`Bấm nút microphone trong composer.`,cmd_webui_only_session:()=>`Lệnh này không khả dụng cho các phiên được import từ CLI.`,cmd_workspace:()=>`Chuyển không gian làm việc theo tên`,cmd_yolo:()=>`Bật/tắt chế độ YOLO (bỏ qua phê duyệt)`,collapse_all:()=>`Thu gọn tất cả`,command_label:()=>`Lệnh`,composer_clarify:()=>`Gửi câu trả lời`,composer_clarify_next:()=>`Câu hỏi tiếp theo`,composer_compression_will_queue:()=>`Nhập tin nhắn — hệ thống sẽ xếp hàng và gửi sau khi nén xong`,composer_control_attach:()=>`Đính kèm`,composer_control_bg_badge:()=>`Huy hiệu nền`,composer_control_context:()=>`Ngữ cảnh`,composer_control_mobile_config:()=>`Cấu hình di động`,composer_control_model:()=>`Model`,composer_control_quota_chip:()=>`Chip hạn mức`,composer_control_reasoning:()=>`Lập luận`,composer_control_saved_prompts:()=>`Prompt đã lưu`,composer_control_status:()=>`Trạng thái`,composer_control_toolsets:()=>`Toolset`,composer_control_voice_mode:()=>`Chế độ giọng nói`,composer_control_workspace:()=>`Workspace`,composer_disabled_clarify:()=>`Hãy trả lời yêu cầu làm rõ`,composer_disabled_compression:()=>`Đang chờ nén hoàn tất`,composer_disabled_empty:()=>`Nhập tin nhắn để gửi`,composer_interrupt:()=>`Ngắt và gửi`,composer_mobile_context:()=>`Ngữ cảnh`,composer_mobile_quota:()=>`Hạn mức`,composer_mobile_reasoning:()=>`Lập luận`,composer_queue:()=>`Xếp hàng tin nhắn`,composer_send:()=>`Gửi tin nhắn`,composer_steer:()=>`Điều hướng phản hồi hiện tại`,composer_stop:()=>`Dừng tạo phản hồi`,compress_complete_label:()=>`Nén hoàn tất`,compress_failed_label:()=>`Nén thất bại`,compress_running_label:()=>`Đang nén`,compressing:()=>`Đang yêu cầu nén ngữ cảnh...`,content_required:()=>`Nội dung là bắt buộc`,context_block_flush_aria:()=>`Các khối ngữ cảnh sẽ được gửi kèm khi bạn nhấn gửi`,context_block_name_default:()=>`Ngữ cảnh`,context_block_remove:()=>`Xóa khối ngữ cảnh`,context_block_rename_aria:()=>`Đổi tên khối ngữ cảnh`,context_block_rename_hint:()=>`Bấm hoặc nhấn Enter để đổi tên`,context_compaction_label:()=>`Nén ngữ cảnh`,conversation_cleared:()=>`Đã xóa cuộc trò chuyện`,copied:()=>`Đã sao chép!`,copy:()=>`Sao chép`,copy_failed:()=>`Sao chép thất bại`,copy_file_path:()=>`Sao chép đường dẫn file`,copy_relative_path:()=>`Sao chép đường dẫn tương đối`,create:()=>`Tạo`,create_failed:()=>`Tạo thất bại: `,create_job:()=>`Tạo job`,created:()=>`Đã tạo `,cron_advanced_label:()=>`Nâng cao`,cron_all_runs:()=>`Tất cả lần chạy`,cron_attention_copy_diagnostics:()=>`Sao chép chẩn đoán`,cron_attention_croniter_hint:()=>`Runtime Gateway có thể thiếu package croniter. Hãy khởi động lại Gateway với hỗ trợ cron rồi tiếp tục job này.`,cron_attention_desc:()=>`Job lặp lại này không có thời gian chạy tiếp theo. Scheduler có thể đã không tính được lần chạy kế tiếp.`,cron_attention_resume:()=>`Tiếp tục và tính toán lại`,cron_attention_run_once:()=>`Chạy một lần ngay`,cron_collapse_output:()=>`Thu gọn output`,cron_collapse_prompt:()=>`Thu gọn prompt`,cron_context_from_empty_hint:()=>`Chưa có job đã lên lịch nào khác để nối chuỗi.`,cron_context_from_hint:()=>`Chèn đầu ra mới nhất của các job đó làm ngữ cảnh cho mỗi lần chạy (job A thu thập, job B xử lý).`,cron_context_from_label:()=>`Lấy ngữ cảnh từ job`,cron_continuity_hint:()=>`Mỗi lần chạy đều thấy đầu ra trước đó của chính job này, nhờ vậy có thể loại trùng và tiếp tục từ chỗ đã dừng.`,cron_continuity_label:()=>`Tính liên tục`,cron_delete_confirm_message:()=>`Hành động này không thể hoàn tác.`,cron_delete_confirm_title:()=>`Xóa cron job`,cron_deliver_custom:()=>`Đích gửi tùy chỉnh`,cron_deliver_label:()=>`Gửi output tới`,cron_deliver_local:()=>`Cục bộ (chỉ lưu đầu ra)`,cron_diagnostics_copied:()=>`Đã sao chép chẩn đoán cron`,cron_duplicate:()=>`Nhân bản`,cron_duplicated:()=>`Đã nhân bản job (tạm dừng)`,cron_expand_output:()=>`Mở rộng output`,cron_expand_prompt:()=>`Mở rộng prompt`,cron_hide_runs:()=>`Ẩn lần chạy`,cron_job_created:()=>`Đã tạo job`,cron_job_deleted:()=>`Đã xóa job`,cron_job_name_placeholder:()=>`Tên job`,cron_job_paused:()=>`Đã tạm dừng job`,cron_job_resumed:()=>`Đã tiếp tục job`,cron_job_triggered:()=>`Đã kích hoạt job`,cron_job_updated:()=>`Đã cập nhật job`,cron_last:()=>`Lần cuối`,cron_last_output:()=>`Output cuối`,cron_mode_label:()=>`Chế độ`,cron_model_hint:()=>`Ghi đè model mặc định cho job này.`,cron_model_label:()=>`Ghi đè model`,cron_model_no_agent_hint:()=>`Job no-agent chạy trực tiếp script đã cấu hình; không dùng model.`,cron_model_use_default:()=>`Mặc định (dùng profile/hệ thống mặc định)`,cron_monitor_hint:()=>`URL http(s) hoặc đường dẫn script tùy chọn, được kiểm tra mỗi nhịp. Đầu ra giống hệt sẽ bỏ qua lần chạy; đầu ra thay đổi sẽ đánh thức agent kèm phần khác biệt.`,cron_monitor_label:()=>`Nguồn giám sát`,cron_monitor_no_agent_conflict:()=>`Không thể kết hợp giám sát với job chỉ chạy script.`,cron_monitor_no_agent_hint:()=>`Không dùng được với job chỉ chạy script: giám sát tồn tại để đánh thức hoặc chặn agent.`,cron_monitor_placeholder:()=>`https://example.com/status — hoặc — check-feed.sh`,cron_name_label:()=>`Tên`,cron_name_placeholder:()=>`Tùy chọn`,cron_next:()=>`Tiếp theo`,cron_no_agent_hint:()=>`Chạy script và gửi nguyên văn đầu ra chuẩn của nó, không dùng LLM. Cần một đường dẫn script.`,cron_no_agent_label:()=>`Job chỉ chạy script`,cron_no_agent_script_required:()=>`Job chỉ chạy script cần một đường dẫn script.`,cron_no_jobs:()=>`Không tìm thấy job đã lên lịch.`,cron_no_runs_yet:()=>`(chưa có lần chạy nào)`,cron_pause:()=>`Tạm dừng`,cron_profile_server_default:()=>`mặc định của server`,cron_profile_server_default_hint:()=>`Dùng profile mặc định của server WebUI tại thời điểm chạy. Các job hiện có không có profile sẽ giữ hành vi cũ này.`,cron_prompt_required:()=>`Prompt là bắt buộc`,cron_reasoning_effort_default:()=>`Mặc định (theo cấu hình)`,cron_reasoning_effort_hint:()=>`Ghim job này vào một mức suy luận duy nhất, ưu tiên hơn thiết lập chung và theo từng mô hình khi chạy.`,cron_reasoning_effort_label:()=>`Mức suy luận`,cron_reasoning_effort_no_agent_hint:()=>`Không dùng đến trong job chỉ chạy script: không có lời gọi LLM nào để cấu hình.`,cron_repeat_hint:()=>`Số lần chạy trước khi job kết thúc. Để trống giữ giá trị mặc định: một lần với job chạy một lượt, chạy mãi với lịch lặp lại. Chỉ đặt được khi tạo.`,cron_repeat_invalid:()=>`Số lần lặp phải là số nguyên từ 1 trở lên.`,cron_repeat_label:()=>`Số lần lặp`,cron_repeat_placeholder:()=>`Để trống để dùng giá trị mặc định`,cron_resume:()=>`Tiếp tục`,cron_run_now:()=>`Chạy ngay`,cron_schedule_hint:()=>`Dùng 'every 1h' hoặc biểu thức cron cho job lặp lại. Các khoảng thời gian đơn như '30m' chỉ chạy một lần.`,cron_schedule_hour_label:()=>`Giờ`,cron_schedule_label:()=>`Lịch chạy`,cron_schedule_minute_label:()=>`Phút`,cron_schedule_month_day_label:()=>`Ngày`,cron_schedule_once_warning:()=>`Các dạng thời lượng như '30m' chỉ chạy một lần và sẽ bị xóa sau khi chạy. Dùng 'every 30m' để giữ job lặp lại.`,cron_schedule_placeholder:()=>`Lịch chạy`,cron_schedule_preset_custom:()=>`Tùy chỉnh`,cron_schedule_preset_daily:()=>`Hàng ngày`,cron_schedule_preset_hourly:()=>`Hàng giờ`,cron_schedule_preset_label:()=>`Cài đặt sẵn`,cron_schedule_preset_monthly:()=>`Hàng tháng`,cron_schedule_preset_weekdays:()=>`Ngày trong tuần`,cron_schedule_preset_weekly:()=>`Hàng tuần`,cron_schedule_required:()=>`Lịch chạy là bắt buộc`,cron_schedule_required_example:()=>`Lịch chạy là bắt buộc (ví dụ: "0 9 * * *" hoặc "every 1h")`,cron_schedule_time_hint:()=>`Thời gian dùng giờ máy chủ; cron chạy phía máy chủ.`,cron_schedule_weekday_label:()=>`Thứ trong tuần (0-6, CN-T7)`,cron_script_badge_title:()=>`Job script (không dùng agent)`,cron_script_context_hint:()=>`Tùy chọn. Chạy mỗi nhịp; đầu ra chuẩn của nó được chèn vào prompt làm ngữ cảnh. Đường dẫn tương đối được phân giải trong ~/.hermes/scripts/.`,cron_script_job_banner:()=>`Chạy script theo lịch — stdout được gửi tới đích. Không có agent, prompt hoặc skill.`,cron_script_output:()=>`Đầu ra script`,cron_script_path_hint:()=>`Được resolve dưới ~/.hermes/scripts/ trừ khi là đường dẫn tuyệt đối. Hãy chỉnh sửa file script trên server để thay đổi hành vi.`,cron_script_path_label:()=>`Đường dẫn script`,cron_skills_edit_hint:()=>`Danh sách kỹ năng không thể chỉnh sửa sau khi tạo.`,cron_skills_label:()=>`Kỹ năng`,cron_skills_placeholder:()=>`Thêm kỹ năng (tùy chọn)…`,cron_status_active:()=>`đang hoạt động`,cron_status_error:()=>`lỗi`,cron_status_needs_attention:()=>`cần chú ý`,cron_status_off:()=>`tắt`,cron_status_paused:()=>`tạm dừng`,cron_status_running:()=>`đang chạy…`,cron_toast_notifications_disabled:()=>`Đã tắt`,cron_toast_notifications_enabled:()=>`Đã bật`,cron_toast_notifications_hint:()=>`Hiển thị toast khi cron này hoàn tất. Badge Tasks và dấu lần chạy mới vẫn cập nhật khi tùy chọn này tắt.`,cron_toast_notifications_label:()=>`Thông báo toast khi hoàn tất`,cron_view_full_output:()=>`Xem toàn bộ đầu ra`,cron_workdir_label:()=>`Thư mục làm việc`,csv_error:()=>`Không thể tải tệp CSV`,csv_header_note:()=>`Hàng đầu tiên được hiển thị làm tiêu đề bảng`,csv_loading:()=>`Đang tải CSV`,csv_no_data:()=>`Tệp CSV không đủ dữ liệu để hiển thị thành bảng`,csv_too_large:()=>`Tệp CSV quá lớn để hiển thị trực tiếp`,ctx_compress_action:()=>`⚠ Nén ngay để giải phóng ngữ cảnh`,ctx_compress_hint:()=>`Nén ngữ cảnh để giải phóng dung lượng →`,current_password_incorrect:()=>`Mật khẩu hiện tại không đúng.`,current_password_label:()=>`Mật khẩu hiện tại`,current_password_placeholder:()=>`Nhập mật khẩu hiện tại…`,current_password_required:()=>`Cần mật khẩu hiện tại để thay đổi hoặc tắt xác thực.`,current_task_list:()=>`Danh sách tác vụ hiện tại`,dashboard_loopback_warning:()=>`Dashboard chỉ cho phép loopback trên server. Hãy truy cập trực tiếp từ server hoặc khởi động lại với --host 0.0.0.0 (không an toàn).`,delete_confirm:e=>`Xóa ${e?.name}?`,delete_dir_confirm:e=>`Xóa thư mục "${e?.name}" và toàn bộ nội dung?`,delete_failed:()=>`Xóa thất bại: `,delete_title:()=>`Xóa`,deleted:()=>`Đã xóa `,dialog_confirm_btn:()=>`Xác nhận`,dialog_confirm_title:()=>`Xác nhận thao tác`,dialog_prompt_title:()=>`Nhập giá trị`,diff_error:()=>`Không thể tải file patch`,diff_loading:()=>`Đang tải diff`,diff_too_large:()=>`File patch quá lớn để hiển thị trực tiếp`,disable:()=>`Tắt`,disable_auth:()=>`Tắt xác thực`,disable_auth_confirm_message:()=>`Bất kỳ ai cũng có thể truy cập instance này.`,disable_auth_confirm_title:()=>`Tắt bảo vệ mật khẩu`,disable_auth_failed:()=>`Tắt xác thực thất bại: `,disable_auth_typed_confirm:()=>`Nhập DISABLE AUTH để xác nhận`,discard:()=>`Bỏ thay đổi`,discard_file_edits_message:()=>`Chuyển workspace sẽ bỏ các chỉnh sửa file chưa lưu trong phần xem trước.`,discard_file_edits_title:()=>`Bỏ thay đổi file?`,dismiss:()=>`Đóng`,done:()=>`Hoàn tất`,double_click_rename:()=>`Nhấp đúp để đổi tên`,download_folder:()=>`Tải thư mục`,download_transcript:()=>`Tải dưới dạng Markdown`,downloading:e=>`Đang tải ${e?.name}…`,edit:()=>`Chỉnh sửa`,edit_failed:()=>`Chỉnh sửa thất bại: `,edit_message:()=>`Chỉnh sửa tin nhắn`,edit_title:()=>`Chỉnh sửa file này`,editing:()=>`Đang chỉnh sửa`,empty_dir:()=>`(trống)`,empty_hero_title:()=>`Chúng ta làm gì nào?`,empty_hero_title_workspace:e=>`Chúng ta làm gì trong ${e?.a0}?`,error_prefix:()=>`Lỗi: `,excalidraw_download:()=>`Tải xuống`,excalidraw_empty:()=>`Sơ đồ trống`,excalidraw_error:()=>`Không thể tải tệp Excalidraw`,excalidraw_invalid:()=>`Định dạng tệp Excalidraw không hợp lệ`,excalidraw_label:()=>`Sơ đồ`,excalidraw_loading:()=>`Đang tải sơ đồ`,excalidraw_render_error:()=>`Không thể render sơ đồ`,excalidraw_simplified:()=>`Bản xem trước SVG đã được giản lược — không hoàn toàn giống canvas Excalidraw`,excalidraw_too_large:()=>`Tệp Excalidraw quá lớn để hiển thị trực tiếp`,expand_all:()=>`Mở rộng tất cả`,export_session_html_tooltip:()=>`Xuất dưới dạng trang HTML độc lập`,export_session_json_tooltip:()=>`Xuất toàn bộ phiên dưới dạng JSON`,ext_configure:()=>`Cấu hình`,ext_configure_failed:()=>`Không thể cấu hình tiện ích mở rộng.`,ext_configure_opening:()=>`Đang mở…`,ext_gallery_after_install:()=>`Sau khi cài đặt`,ext_gallery_install_followup:()=>`Đã cài đặt tiện ích mở rộng. Xem thẻ để biết các bước tiếp theo.`,ext_gallery_install_restart_required:()=>`Đã cài đặt tiện ích mở rộng. Cần khởi động lại để áp dụng.`,ext_gallery_local_app_label:()=>`Ứng dụng cục bộ`,ext_gallery_local_component_required:()=>`Tiện ích mở rộng này có thành phần cục bộ. Sau khi cài đặt, hãy khởi động ứng dụng cục bộ hoặc sidecar bắt buộc.`,ext_gallery_native_host_required:()=>`Cần native host`,ext_gallery_next_step:()=>`Bước tiếp theo`,ext_gallery_open_setup_guide:()=>`Mở hướng dẫn thiết lập`,ext_gallery_permissions_empty:()=>`Không khai báo quyền bổ sung nào.`,ext_gallery_required_suffix:e=>`Cần ${e?.a0}`,ext_gallery_sidecar_required:()=>`Cần sidecar`,external_link_grant_expired:()=>`Chế độ xem bên ngoài này đã hết hạn. Hãy mở lại symlink trỏ ra ngoài để cấp quyền lại.`,external_link_open_confirm:()=>`Symlink này trỏ ra ngoài workspace và không thể mở từ đây.`,external_link_read_only:()=>`Chế độ xem bên ngoài này chỉ đọc. Các thao tác tạo, đổi tên, di chuyển, xóa, tải lên, hiển thị và chỉnh sửa vẫn bị tắt tại đây.`,external_notes_auto:()=>`tự động`,external_notes_auto_recall_hint:()=>`Tự động gọi lại phiên không thay đổi; ngăn này chỉ hiển thị các nguồn đã cấu hình và công cụ đọc/tìm kiếm khả dụng.`,external_notes_configured_hint:()=>`Tên công cụ được mong đợi từ nguồn đã cấu hình này; schema trực tiếp sẽ xuất hiện khi runtime WebUI hiển thị chúng.`,external_notes_empty:()=>`Chưa có nguồn MCP ghi chú hoặc tri thức nào hiển thị. Hãy cấu hình Joplin, Obsidian, Notion, llm-wiki hoặc server ghi chú khác để liệt kê tại đây.`,external_notes_no_tools:()=>`Hiện không có công cụ đọc/tìm kiếm nào hiển thị cho nguồn này.`,external_notes_recent_ai:()=>`AI dùng gần đây`,external_notes_recent_ai_reason:()=>`Tự động gọi lại`,external_notes_search_empty:()=>`Tìm kiếm một nguồn ghi chú đã cấu hình để xem trước ghi chú tại đây.`,external_notes_search_placeholder:()=>`Tìm ghi chú…`,external_notes_sources:()=>`Nguồn ghi chú bên thứ ba`,external_notes_tool_count:t=>(e(`vi`,t?.count,{}),`${t?.count} công cụ ghi chú khả dụng`),failed_colon:()=>`Thất bại: `,file_open_failed:()=>`Không thể mở file`,filter_conversations:()=>`Lọc cuộc trò chuyện...`,first_token_time:()=>`Thời gian tới token đầu tiên`,focus_label:()=>`Tiêu điểm`,folder_add_as_space_btn:()=>`Thêm làm Space`,folder_add_as_space_msg:()=>`Thêm thư mục này làm space mới trong danh sách workspace?`,folder_add_as_space_title:()=>`Thêm làm Space?`,folder_create_failed:()=>`Tạo thư mục thất bại: `,folder_created:()=>`Đã tạo thư mục `,font_size_default:()=>`Mặc định`,font_size_large:()=>`Lớn`,font_size_small:()=>`Nhỏ`,font_size_xlarge:()=>`Rất lớn`,fork_from_here:()=>`Fork từ đây`,forked_from:()=>`Fork từ`,gateway_auth_label:()=>`Xác thực gateway thất bại`,gateway_endpoint_unreachable:()=>`Không thể truy cập endpoint gateway`,gateway_last_active:()=>`Hoạt động lần cuối: `,gateway_load_failed:()=>`Tải trạng thái gateway thất bại`,gateway_metadata_stale:()=>`Metadata gateway đã cũ`,gateway_not_configured:()=>`Gateway chưa được cấu hình`,gateway_not_running:()=>`Gateway hiện chưa chạy`,gateway_restart:()=>`Khởi động lại`,gateway_restart_failed:()=>`Khởi động lại gateway thất bại`,gateway_restart_success:()=>`Đã khởi động lại gateway.`,gateway_running:()=>`Đang chạy`,gateway_running_label:()=>`Đang chạy`,gateway_session:()=>`phiên`,gateway_session_count:t=>(e(`vi`,t?.n,{}),`${t?.n} phiên`),gateway_sessions:()=>`phiên`,gateway_start:()=>`Bắt đầu`,gateway_start_failed:()=>`Khởi động gateway thất bại`,gateway_start_success:()=>`Đã khởi động gateway.`,gateway_status_load_failed:()=>`Không thể tải trạng thái gateway`,gateway_stop:()=>`Dừng`,gateway_stop_failed:()=>`Dừng gateway thất bại`,gateway_stop_success:()=>`Đã dừng gateway.`,goal_achieved:e=>`✓ Đã đạt mục tiêu: ${e?.reason}`,goal_cleared:()=>`Đã xóa mục tiêu.`,goal_continuing:e=>`↻ Đang tiếp tục mục tiêu (${e?.turns}/${e?.max_turns}): ${e?.reason}`,goal_continuing_toast:()=>`Đang tiếp tục mục tiêu…`,goal_evaluating_progress:()=>`Đang đánh giá tiến độ mục tiêu…`,goal_no_goal:()=>`Không có mục tiêu hoạt động.`,goal_paused:e=>`⏸ Đã tạm dừng mục tiêu: ${e?.goal}`,goal_paused_budget_exhausted:e=>`⏸ Đã tạm dừng mục tiêu — đã dùng ${e?.turns}/${e?.max_turns} lượt. Dùng /goal resume để tiếp tục hoặc /goal clear để dừng.`,goal_resumed:e=>`▶ Đã tiếp tục mục tiêu: ${e?.goal}`,goal_set:e=>`⊙ Đã đặt mục tiêu (${e?.turns} lượt): ${e?.goal}`,goal_status_active:e=>`⊙ Mục tiêu (đang hoạt động, ${e?.turns}/${e?.max_turns} lượt): ${e?.goal}`,goal_status_done:e=>`✓ Hoàn thành mục tiêu (${e?.turns}/${e?.max_turns}): ${e?.goal}`,goal_status_none:()=>`Không có mục tiêu nào đang hoạt động. Đặt bằng /goal <text>.`,goal_status_paused:e=>`⏸ Mục tiêu (tạm dừng, ${e?.turns}/${e?.max_turns}${e?.reason_suffix}): ${e?.goal}`,goal_working_toward:()=>`Đang thực hiện mục tiêu…`,html_error:()=>`Không thể hiển thị xem trước HTML`,html_loading:()=>`Đang tải xem trước HTML…`,html_open_full:()=>`Mở toàn bộ trang`,html_sandbox_label:()=>`Xem trước HTML (chế độ cách ly)`,html_too_large:()=>`HTML quá lớn để xem trực tiếp`,image_load_failed:()=>`Không thể tải ảnh`,image_pasted:()=>`Đã dán ảnh: `,import_failed:()=>`Nhập thất bại: `,import_invalid_json:()=>`JSON không hợp lệ`,import_session_json_tooltip:()=>`Nhập phiên từ JSON`,insights_activity_by_day:()=>`Hoạt động theo ngày`,insights_activity_by_hour:()=>`Hoạt động theo giờ`,insights_cache_hit:()=>`Tỷ lệ trúng bộ nhớ đệm prompt`,insights_cost:()=>`Chi phí ước tính`,insights_daily_tokens:()=>`Token hàng ngày`,insights_footer:e=>`Hiển thị dữ liệu trong ${e?.days} ngày gần nhất`,insights_input_tokens:()=>`Đầu vào`,insights_messages:()=>`Tin nhắn`,insights_model_cost:()=>`Chi phí`,insights_model_health_cost_per_m:()=>`Chi phí / 1M`,insights_model_health_provider:()=>`Nhà cung cấp`,insights_model_health_replacement:()=>`Gợi ý thay thế`,insights_model_health_title:()=>`So sánh sức khỏe model`,insights_model_sessions:()=>`Phiên`,insights_model_share:()=>`Tỷ lệ`,insights_model_tokens:()=>`Token`,insights_models:()=>`Model`,insights_no_cost:()=>`Không có`,insights_no_usage_data:()=>`Chưa có dữ liệu sử dụng`,insights_output_tokens:()=>`Đầu ra`,insights_peak_hour:e=>`Cao điểm: ${e?.hour}`,insights_sessions:()=>`Phiên`,insights_skill_usage_col_patches:()=>`Patch`,insights_skill_usage_col_share:()=>`Tỷ lệ sử dụng %`,insights_skill_usage_col_skill:()=>`Kỹ năng`,insights_skill_usage_col_uses:()=>`Lần dùng`,insights_skill_usage_col_views:()=>`Lượt xem`,insights_skill_usage_footer:()=>`Số lượng từ ~/.hermes/skills/`,insights_skill_usage_no_data:()=>`Chưa có dữ liệu sử dụng kỹ năng`,insights_skill_usage_no_data_hint:()=>`Kỹ năng sẽ xuất hiện ở đây sau khi được dùng trong cuộc trò chuyện.`,insights_skill_usage_skills_used:()=>`Kỹ năng đã dùng`,insights_skill_usage_sub:()=>`Tần suất gọi công cụ`,insights_skill_usage_title:()=>`Sử dụng kỹ năng`,insights_skill_usage_total:()=>`Tổng số lần gọi`,insights_title:()=>`Phân tích sử dụng`,insights_token_breakdown:()=>`Phân tích token`,insights_tokens:()=>`Token`,insights_total:()=>`Tổng`,jump_to_question:()=>`tới phản hồi`,jump_to_question_label:()=>`Nhảy tới đầu phản hồi này`,kanban_add_comment:()=>`Thêm bình luận`,kanban_add_dependency:()=>`Thêm phụ thuộc`,kanban_all_assignees:()=>`Tất cả assignee`,kanban_all_tenants:()=>`Tất cả tenant`,kanban_archive_board:()=>`Lưu trữ bảng hiện tại…`,kanban_archive_board_confirm:e=>`Lưu trữ bảng "${e?.name}"? Các tác vụ vẫn còn trên đĩa và bảng có thể được khôi phục từ kanban/boards/_archived/.`,kanban_assignee:()=>`Người phụ trách`,kanban_assignee_other_label:()=>`Khác (CLI lanes / profile đã xóa)`,kanban_assignee_placeholder:()=>`Tùy chọn — để trống cho bất kỳ worker nào`,kanban_assignee_profiles_label:()=>`Hồ sơ Hermes`,kanban_assignee_unassigned:()=>`— Chưa gán (sẽ không tự chạy) —`,kanban_back_to_board:()=>`Quay lại bảng`,kanban_block:()=>`Chặn`,kanban_board:()=>`Bảng`,kanban_board_archived:()=>`Đã lưu trữ bảng`,kanban_board_color:()=>`Màu sắc (tùy chọn)`,kanban_board_default_workdir:()=>`Đường dẫn workspace mặc định`,kanban_board_default_workdir_placeholder:()=>`Đường dẫn workspace (tùy chọn)`,kanban_board_description:()=>`Mô tả (tùy chọn)`,kanban_board_icon:()=>`Biểu tượng (emoji, tùy chọn)`,kanban_board_name:()=>`Tên`,kanban_board_name_required:()=>`Tên là bắt buộc`,kanban_board_settings:()=>`Cài đặt bảng`,kanban_board_slug:()=>`Slug (chữ thường, dấu gạch nối)`,kanban_board_slug_required:()=>`Slug là bắt buộc`,kanban_bulk_action:()=>`Thao tác hàng loạt`,kanban_card_archive:()=>`lưu trữ`,kanban_card_complete:()=>`hoàn tất`,kanban_children:()=>`Con`,kanban_comments_count:e=>`Bình luận (${e?.a0})`,kanban_dependency_placeholder:()=>`ID tác vụ cần liên kết`,kanban_dependency_self:()=>`Một tác vụ không thể phụ thuộc vào chính nó`,kanban_description:()=>`Mô tả`,kanban_description_placeholder:()=>`Tùy chọn — điều gì cần thực hiện, tiêu chí chấp nhận, liên kết`,kanban_dispatch_auto_blocked:()=>`tự động chặn`,kanban_dispatch_crashed:()=>`bị crash`,kanban_dispatch_preview_prefix:()=>`Xem trước:`,kanban_dispatch_promoted:()=>`đã nâng cấp`,kanban_dispatch_reclaimed:()=>`đã nhận lại`,kanban_dispatch_run_prefix:()=>`Đã dispatch:`,kanban_dispatch_skipped_nonspawnable:()=>`đã bỏ qua (profile không xác định)`,kanban_dispatch_skipped_unassigned:()=>`đã bỏ qua (chưa gán)`,kanban_dispatch_spawned:()=>`đã tạo`,kanban_dispatch_timed_out:()=>`hết thời gian`,kanban_edit_task:()=>`Chỉnh sửa tác vụ`,kanban_empty:()=>`Trống`,kanban_events_count:e=>`Sự kiện (${e?.a0})`,kanban_include_archived:()=>`Bao gồm mục đã lưu trữ`,kanban_lanes_by_profile:()=>`Cột theo hồ sơ`,kanban_links:()=>`Liên kết`,kanban_new_board:()=>`Bảng mới…`,kanban_new_task:()=>`Tác vụ mới`,kanban_no_comments:()=>`Không có bình luận`,kanban_no_data:()=>`Không có dữ liệu Kanban`,kanban_no_description:()=>`Không có mô tả`,kanban_no_events:()=>`Không có sự kiện`,kanban_no_matching_tasks:()=>`Không có tác vụ phù hợp`,kanban_no_runs:()=>`Không có lần chạy`,kanban_nudge_dispatcher:()=>`Xem trước bộ điều phối`,kanban_only_mine:()=>`Chỉ của tôi`,kanban_parents:()=>`Cha`,kanban_priority:()=>`Độ ưu tiên`,kanban_priority_hint:()=>`Số cao hơn sẽ chạy trước. Mặc định là 0.`,kanban_read_only:()=>`Chế độ chỉ đọc`,kanban_ready_needs_assignee:()=>`Bạn đã chọn Unassigned + Ready. Dispatcher sẽ bỏ qua tác vụ này. Gửi lại để xác nhận hoặc chọn một profile.`,kanban_refresh:()=>`Làm mới`,kanban_remove_dependency:()=>`Xóa phụ thuộc`,kanban_rename_board:()=>`Cài đặt bảng…`,kanban_run_dispatcher:()=>`Chạy bộ điều phối`,kanban_run_dispatcher_confirm:()=>`Thao tác này sẽ nhận các tác vụ Ready trên bảng này và tạo subprocess worker (mỗi tác vụ một worker, tối đa 8 mỗi lần bấm). Tiếp tục?`,kanban_runs_count:e=>`Lần chạy (${e?.a0})`,kanban_search_tasks:()=>`Tìm kiếm tác vụ`,kanban_stats:()=>`Thống kê`,kanban_status:()=>`Trạng thái`,kanban_status_archived:()=>`Đã lưu trữ`,kanban_status_blocked:()=>`Bị chặn`,kanban_status_done:()=>`Hoàn tất`,kanban_status_original_hint:e=>`Trạng thái thực tế: ${e?.a0}. Hộp thoại này chỉ hỗ trợ chỉnh sửa Triage/Todo/Ready.`,kanban_status_ready:()=>`Sẵn sàng`,kanban_status_running:()=>`Đang chạy`,kanban_status_triage:()=>`Phân loại`,kanban_task:()=>`Tác vụ`,kanban_tenant_placeholder:()=>`Tùy chọn — slug project hoặc team`,kanban_title:()=>`Tiêu đề`,kanban_title_required:()=>`Tiêu đề là bắt buộc.`,kanban_unassigned:()=>`chưa gán`,kanban_unavailable:()=>`Kanban không khả dụng`,kanban_unblock:()=>`Bỏ chặn`,kanban_view_consolidated:()=>`Chế độ xem tổng hợp`,kanban_view_consolidated_saved:()=>`Chế độ Kanban: tổng hợp`,kanban_view_lanes:()=>`Lane theo hồ sơ`,kanban_view_lanes_saved:()=>`Chế độ Kanban: lane theo hồ sơ`,kanban_view_update_failed:()=>`Cập nhật chế độ Kanban thất bại: `,kanban_visible_tasks:e=>`${e?.a0} tác vụ hiển thị`,kanban_work_queue_hint:()=>`Đây là hàng đợi công việc của Hermes Agent. Tạo hoặc phân loại tác vụ, gán người xử lý, chuyển sang Ready rồi để dispatcher nhận.`,kanban_worker_log:()=>`Log worker`,kanban_workspace_dir:()=>`Thư mục`,kanban_workspace_kind:()=>`Loại workspace`,kanban_workspace_path:()=>`Đường dẫn workspace`,kanban_workspace_path_placeholder:()=>`Đường dẫn tới workspace`,kanban_workspace_path_required:()=>`Workspace không phải tạm thời cần có đường dẫn.`,kanban_workspace_scratch:()=>`Tạm thời`,linked_files:()=>`File liên kết`,live_background:()=>`Đang xử lý kết quả nền`,load_older_messages:()=>`↑ Cuộn lên hoặc bấm để tải tin nhắn cũ hơn`,loading:()=>`Đang tải...`,login_btn:()=>`Đăng nhập`,login_conn_failed:()=>`Kết nối thất bại`,login_invalid_pw:()=>`Mật khẩu không hợp lệ`,login_placeholder:()=>`Mật khẩu`,login_subtitle:()=>`Nhập mật khẩu để tiếp tục`,login_title:()=>`Đăng nhập`,logs_auto_refresh:()=>`Tự động làm mới (5s)`,logs_copied:()=>`Đã sao chép log`,logs_copy_all:()=>`Sao chép tất cả`,logs_empty:()=>`Chưa có dòng log nào.`,logs_filter_active:()=>`đang hiển thị (bộ lọc đang hoạt động)`,logs_load_failed:()=>`Tải log thất bại`,logs_loading:()=>`Đang tải log…`,logs_no_mtime:()=>`chưa được ghi`,logs_severity:()=>`Mức độ`,logs_severity_all:()=>`Tất cả`,logs_severity_errors:()=>`Lỗi`,logs_severity_warnings:()=>`Cảnh báo+`,logs_status_idle:()=>`Chọn file log để xem các dòng gần đây.`,logs_truncated_hint:()=>`Đang hiển thị phần cuối của file log lớn; các byte cũ hơn đã bị bỏ qua để giới hạn bộ nhớ.`,logs_wrap:()=>`Xuống dòng`,manage_profiles:()=>`Quản lý profile`,markdown_table_filter:()=>`Lọc bảng`,markdown_table_sort_column:()=>`Sắp xếp cột`,marker_context_compaction:()=>`Nén ngữ cảnh`,marker_preserved_task_list:()=>`Danh sách nhiệm vụ đã giữ lại`,mcp_add_server:()=>`+ Thêm máy chủ`,mcp_cancel:()=>`Hủy`,mcp_command_required:()=>`Lệnh là bắt buộc cho transport stdio.`,mcp_delete_confirm_message:e=>`Xóa máy chủ MCP "${e?.a0}"? Hành động này không thể hoàn tác.`,mcp_delete_confirm_title:()=>`Xóa máy chủ MCP`,mcp_delete_failed:()=>`Xóa máy chủ MCP thất bại.`,mcp_deleted:()=>`Đã xóa máy chủ MCP.`,mcp_disable_server:()=>`Tắt máy chủ MCP này`,mcp_disabled_toast:e=>`Đã tắt máy chủ MCP "${e?.name}".`,mcp_enable_server:()=>`Bật máy chủ MCP này`,mcp_enabled_no:()=>`Đã tắt`,mcp_enabled_toast:e=>`Đã bật máy chủ MCP "${e?.name}".`,mcp_enabled_yes:()=>`Đã bật`,mcp_field_args:()=>`Tham số (phân tách bằng dấu phẩy)`,mcp_field_command:()=>`Lệnh`,mcp_field_name:()=>`Tên máy chủ`,mcp_field_timeout:()=>`Thời gian chờ (giây)`,mcp_health_needs_auth:()=>`Cần đăng nhập lại`,mcp_health_unhealthy:()=>`Không kết nối được`,mcp_load_failed:()=>`Tải danh sách máy chủ MCP thất bại.`,mcp_name_required:()=>`Tên máy chủ là bắt buộc.`,mcp_no_servers:()=>`Chưa có máy chủ MCP nào được cấu hình.`,mcp_restart_hint:()=>`Hiện tại các thay đổi máy chủ chỉ ở chế độ chỉ đọc tại đây. Hãy sửa config.yaml và khởi động lại Hermes để áp dụng thay đổi.`,mcp_save:()=>`Lưu`,mcp_save_failed:()=>`Lưu máy chủ MCP thất bại.`,mcp_saved:()=>`Đã lưu máy chủ MCP.`,mcp_servers_desc:()=>`Xem các máy chủ MCP được cấu hình trong config.yaml.`,mcp_servers_title:()=>`Máy chủ MCP`,mcp_status_active:()=>`Đang hoạt động`,mcp_status_configured:()=>`Đã cấu hình`,mcp_status_disabled:()=>`Đã tắt`,mcp_status_invalid_config:()=>`Cấu hình không hợp lệ`,mcp_status_unknown:()=>`Không xác định`,mcp_toggle_failed:()=>`Cập nhật máy chủ MCP thất bại.`,mcp_toggle_followup:()=>`Các điều khiển bật/tắt tạm thời chưa được hỗ trợ cho đến khi cơ chế reload MCP được xác định rõ.`,mcp_tool_count:e=>`${e?.a0} công cụ`,mcp_tools_desc:()=>`Tìm kiếm các công cụ đã biết trên các máy chủ MCP đang hoạt động.`,mcp_tools_inactive_configured_servers:e=>`Đã cấu hình nhưng không hoạt động trong runtime WebUI này: ${e?.servers}.`,mcp_tools_load_failed:()=>`Tải công cụ MCP thất bại.`,mcp_tools_next_page:()=>`Tiếp ›`,mcp_tools_next_page_aria:()=>`Trang công cụ MCP tiếp theo`,mcp_tools_no_matches:()=>`Không có công cụ MCP nào khớp với tìm kiếm.`,mcp_tools_no_tools:()=>`Không có công cụ MCP nào khả dụng từ runtime hiện tại.`,mcp_tools_page_size_prefix:()=>`Hiển thị`,mcp_tools_page_size_suffix:()=>`mỗi trang`,mcp_tools_pagination_label:()=>`Phân trang công cụ MCP`,mcp_tools_per_page_aria:()=>`Số công cụ MCP mỗi trang`,mcp_tools_previous_page:()=>`‹ Trước`,mcp_tools_previous_page_aria:()=>`Trang công cụ MCP trước`,mcp_tools_runtime_note:()=>`Danh sách công cụ chỉ sử dụng dữ liệu runtime MCP đang hoạt động đã biết; WebUI sẽ không tự khởi động hoặc kiểm tra máy chủ.`,mcp_tools_schema_empty:()=>`Không có tham số schema.`,mcp_tools_search_placeholder:()=>`Tìm công cụ theo tên, máy chủ hoặc mô tả…`,mcp_tools_summary_matching:e=>` khớp với “${e?.query}”`,mcp_tools_summary_no_matches:e=>`Không có công cụ MCP nào khớp với “${e?.query}” (${e?.total} công cụ MCP tổng cộng).`,mcp_tools_summary_none:()=>`Không có công cụ MCP để hiển thị.`,mcp_tools_summary_showing:e=>`Hiển thị ${e?.start}-${e?.end} trên ${e?.filtered} công cụ MCP${e?.searchNote}${e?.totalNote}. Trang ${e?.page}/${e?.pages}.`,mcp_tools_summary_total_note:e=>` (${e?.total} công cụ MCP tổng cộng)`,mcp_tools_title:()=>`Công cụ MCP`,mcp_transport_label:()=>`Loại kết nối`,mcp_url_required:()=>`URL là bắt buộc cho transport HTTP.`,media_audio_label:()=>`Âm thanh`,media_download:()=>`Tải xuống`,media_svg_label:()=>`Sơ đồ`,memory_notes_label:()=>`bộ nhớ (ghi chú)`,memory_saved:()=>`Đã lưu bộ nhớ`,mic_denied:()=>`Quyền truy cập microphone bị từ chối. Kiểm tra quyền trình duyệt.`,mic_error:()=>`Lỗi nhập giọng nói: `,mic_insecure_origin:()=>`Nhập giọng nói cần kết nối bảo mật. Hãy mở Hermes qua HTTPS hoặc từ localhost để dùng microphone.`,mic_network:()=>`Nhận diện giọng nói không khả dụng.`,mic_no_speech:()=>`Không phát hiện giọng nói. Hãy thử lại.`,model_badge_selected:()=>`Đã chọn`,model_custom_label:()=>`ID model tự nhập`,model_custom_placeholder:()=>`ví dụ: openai/gpt-5.4`,model_did_you_mean:e=>` — có phải bạn muốn "${e?.m}"?`,model_group_configured:()=>`Đã cấu hình`,model_not_found_label:()=>`Không tìm thấy model`,model_scope_advisory:()=>`Áp dụng cho cuộc trò chuyện này từ tin nhắn tiếp theo.`,model_scope_toast:()=>`Áp dụng cho cuộc trò chuyện này từ tin nhắn tiếp theo.`,model_search_no_results:()=>`Không tìm thấy model nào`,model_search_placeholder:()=>`Tìm model…`,model_show_all_models:e=>`Hiển thị tất cả ${e?.a0} model`,model_unavailable:()=>` (không khả dụng)`,model_unavailable_title:()=>`Model này không còn trong danh sách provider hiện tại của bạn`,model_usage:()=>`Cách dùng: /model <tên>`,more_actions:()=>`Thao tác khác`,move_failed:()=>`Chuyển thất bại: `,moved_to:()=>`Đã chuyển tới `,my_notes:()=>`Ghi chú của tôi`,n_messages:t=>(e(`vi`,t?.n,{}),`${t?.n} tin nhắn`),name_required:()=>`Tên là bắt buộc`,never:()=>`không bao giờ`,new_conversation:()=>`Cuộc trò chuyện mới`,new_file:()=>`File mới`,new_file_prompt:()=>`Tên file mới (ví dụ: notes.md):`,new_file_prompt_title:e=>`Tên tệp mới trong ${e?.a0}:`,new_folder:()=>`Thư mục mới`,new_folder_prompt:()=>`Tên thư mục mới:`,new_folder_prompt_title:e=>`Tên thư mục mới trong ${e?.a0}:`,new_job:()=>`Tác vụ mới`,new_profile:()=>`Profile mới`,new_session:()=>`Đã tạo phiên mới`,new_session_creating:()=>`Đang tạo cuộc trò chuyện mới…`,new_session_workspace_announce:e=>`Đã bắt đầu cuộc trò chuyện mới trong workspace: ${e?.a0}.`,new_skill:()=>`Kỹ năng mới`,no_active_session:()=>`Không có phiên hoạt động`,no_active_task:()=>`Không có tác vụ hoạt động để dừng.`,no_model_match:()=>`Không có model nào khớp "`,no_notes_yet:()=>`Chưa có ghi chú.`,no_personalities:()=>`Không tìm thấy personality nào (thêm vào config.yaml → agent.personalities)`,no_profile_yet:()=>`Chưa có profile.`,no_soul_yet:()=>`Chưa định nghĩa soul.`,no_workspace:()=>`Không có không gian làm việc`,no_workspace_match:()=>`Không có workspace nào khớp "`,not_available:()=>`Không có`,notifications_denied:()=>`Thông báo đang bị chặn trong trình duyệt này. Hãy bật trong cài đặt trình duyệt.`,notifications_enable_btn:()=>`Bật thông báo`,notifications_enabled_toast:()=>`Đã bật thông báo.`,notifications_permission_status:e=>`Quyền: ${e?.status}`,notifications_test_btn:()=>`Gửi thử`,notifications_unsupported:()=>`Trình duyệt này không hỗ trợ thông báo.`,oauth_codex_error:()=>`Đăng nhập OAuth thất bại`,oauth_codex_expired:()=>`Mã đã hết hạn, vui lòng thử lại`,oauth_codex_polling:()=>`Đang chờ xác thực...`,oauth_codex_step1:()=>`Bước 1: Truy cập URL này và nhập mã`,oauth_codex_step2:()=>`Bước 2: Nhập mã này trên trang`,oauth_codex_success:()=>`Đăng nhập OAuth Codex thành công!`,oauth_login_codex:()=>`Đăng nhập bằng Codex (ChatGPT)`,offline_autorefresh:()=>`Trang sẽ tự động làm mới khi Hermes khả dụng trở lại.`,offline_browser_detail:()=>`Trình duyệt báo rằng thiết bị này đang ngoại tuyến.`,offline_check_now:()=>`Kiểm tra ngay`,offline_checking:()=>`Đang kiểm tra…`,offline_network_detail:()=>`Không thể kết nối tới Hermes từ trình duyệt lúc này.`,offline_stream_waiting:()=>`Mất kết nối. Đang chờ làm mới…`,offline_title:()=>`Mất kết nối`,onboarding_api_key_help_keyless:()=>`Hầu hết cài đặt LM Studio / Ollama / vLLM chạy không cần key — hãy để trống nếu server của bạn không yêu cầu xác thực. Dùng nút Test connection để xác minh.`,onboarding_api_key_help_prefix:()=>`Được lưu dưới dạng secret trong file .env của Hermes bằng`,onboarding_api_key_label_optional:()=>`API key (tùy chọn)`,onboarding_api_key_placeholder:()=>`Để trống để giữ key đã lưu hiện có`,onboarding_api_key_placeholder_optional:()=>`Để trống cho server không cần key`,onboarding_back:()=>`Quay lại`,onboarding_badge:()=>`LẦN CHẠY ĐẦU`,onboarding_base_url_help:()=>`Dùng cho router tương thích OpenAI, server self-hosted, LiteLLM, Ollama, LM Studio, vLLM hoặc endpoint tương tự.`,onboarding_check_agent_missing:()=>`Thiếu hoặc chỉ import được một phần`,onboarding_check_agent_ready:()=>`Đã phát hiện và có thể import`,onboarding_check_password:()=>`Mật khẩu`,onboarding_check_password_disabled:()=>`Chưa bật`,onboarding_check_password_enabled:()=>`Đã bật`,onboarding_check_provider:()=>`Cấu hình nhà cung cấp`,onboarding_check_provider_partial:()=>`Đã lưu nhưng chưa hoàn chỉnh`,onboarding_check_provider_pending:()=>`Cần xác minh`,onboarding_check_provider_ready:()=>`Sẵn sàng chat`,onboarding_complete:()=>`Hoàn tất thiết lập ban đầu`,onboarding_config_file:()=>`File config:`,onboarding_continue:()=>`Tiếp tục`,onboarding_current_provider:()=>`Thiết lập hiện tại:`,onboarding_custom_model_help:()=>`Với endpoint tùy chỉnh, nhập đúng model ID mà server yêu cầu.`,onboarding_custom_model_placeholder:()=>`ten-model-cua-ban`,onboarding_error_base_url_required:()=>`Base URL là bắt buộc cho endpoint tùy chỉnh.`,onboarding_error_choose_model:()=>`Chọn model trước khi tiếp tục.`,onboarding_error_choose_workspace:()=>`Chọn workspace trước khi tiếp tục.`,onboarding_error_model_required:()=>`Model là bắt buộc.`,onboarding_error_probe_failed:()=>`Không thể xác minh Base URL đã cấu hình.`,onboarding_error_provider_required:()=>`Chọn chế độ thiết lập trước khi tiếp tục.`,onboarding_error_workspace_required:()=>`Workspace là bắt buộc.`,onboarding_finish_help:()=>`Hoàn tất sẽ lưu <code>onboarding_completed</code> vào settings và đưa bạn vào ứng dụng bình thường.`,onboarding_lead:()=>`Thiết lập nhanh có hướng dẫn sẽ kiểm tra Hermes, lưu cấu hình provider thực, chọn workspace và model, đồng thời có thể bảo vệ ứng dụng bằng mật khẩu.`,onboarding_missing_imports:()=>`Thiếu các import sau:`,onboarding_model_label:()=>`Model mặc định`,onboarding_not_set:()=>`Chưa đặt`,onboarding_notice_custom_base_url_required:()=>`Hermes đã lưu lựa chọn provider/model, nhưng provider tùy chỉnh vẫn cần Base URL. Hãy thêm cả API key nếu máy chủ đó yêu cầu.`,onboarding_notice_finish:()=>`Bạn có thể mở lại Settings sau để thay đổi bất kỳ mục nào.`,onboarding_notice_password_enabled:()=>`Mật khẩu đã được cấu hình. Chỉ nhập mật khẩu mới nếu bạn muốn thay thế.`,onboarding_notice_password_recommended:()=>`Tùy chọn nhưng được khuyến nghị nếu bạn sẽ mở UI ngoài localhost.`,onboarding_notice_provider_api_key_required:()=>`Hermes đã lưu lựa chọn provider/model, nhưng vẫn cần API key để chat.`,onboarding_notice_provider_auth_required:e=>`Provider "${e?.a0}" đã được cấu hình nhưng chưa xác thực. Chạy "hermes auth" hoặc "hermes model" trong terminal để hoàn tất thiết lập, rồi tải lại Web UI.`,onboarding_notice_provider_choice_required:()=>`Hermes đã được cài đặt, nhưng bạn vẫn cần chọn provider và lưu thông tin xác thực hoạt động được.`,onboarding_notice_setup_already_ready:()=>`Đã phát hiện cấu hình provider Hermes đang hoạt động. Bạn có thể giữ nguyên hoặc thay thế tại đây.`,onboarding_notice_setup_required:()=>`Hãy chọn cách thiết lập provider đơn giản tại đây. Các luồng OAuth nâng cao hiện vẫn nên thực hiện trong Hermes CLI.`,onboarding_notice_system_ready:()=>`Hermes Agent có vẻ truy cập được từ Web UI.`,onboarding_notice_system_unavailable:()=>`Hermes Agent chưa hoàn toàn khả dụng. Bootstrap có thể cài đặt nhưng thiết lập provider vẫn có thể cần terminal.`,onboarding_notice_workspace:()=>`Các giá trị này dùng lại cùng API cài đặt như ứng dụng bình thường.`,onboarding_oauth_provider_not_ready_body:e=>`Instance này được cấu hình dùng <strong>${e?.provider}</strong>, sử dụng OAuth thay vì API key. Hãy chạy <code>hermes auth</code> hoặc <code>hermes model</code> trong terminal để xác thực rồi tải lại Web UI.`,onboarding_oauth_provider_not_ready_title:()=>`Provider OAuth chưa được xác thực`,onboarding_oauth_provider_ready_body:e=>`Instance này được cấu hình dùng provider OAuth (<strong>${e?.provider}</strong>) đã được thiết lập qua Hermes CLI. Không cần API key tại đây — nhấn Tiếp tục để hoàn tất thiết lập.`,onboarding_oauth_provider_ready_title:()=>`Provider đã xác thực`,onboarding_oauth_switch_hint:()=>`Hoặc chọn provider khác bên dưới để chuyển sang thiết lập bằng API key:`,onboarding_open:()=>`Mở Hermes`,onboarding_password_help:()=>`Mật khẩu được lưu qua API settings hiện có và hash ở phía server.`,onboarding_password_keep_existing:()=>`Giữ mật khẩu hiện tại`,onboarding_password_label:()=>`Mật khẩu (tùy chọn)`,onboarding_password_placeholder:()=>`Để trống để bỏ qua`,onboarding_password_remains_disabled:()=>`Sẽ vẫn tắt`,onboarding_password_skipped:()=>`Tạm bỏ qua`,onboarding_password_will_enable:()=>`Sẽ được bật`,onboarding_password_will_replace:()=>`Sẽ được thay thế`,onboarding_probe_error_connect_refused:()=>`Kết nối bị từ chối — server có thể chưa chạy trên địa chỉ đó. Nếu chạy trong Docker, hãy thử IP host thay vì localhost.`,onboarding_probe_error_dns:()=>`Không thể phân giải hostname. Kiểm tra URL hoặc dùng địa chỉ IP của host.`,onboarding_probe_error_generic:()=>`Không thể truy cập Base URL đã cấu hình.`,onboarding_probe_error_http_4xx:()=>`Endpoint trả về lỗi client. Kiểm tra xác thực và đường dẫn URL (thường kết thúc bằng /v1).`,onboarding_probe_error_http_5xx:()=>`Endpoint trả về lỗi server. Kiểm tra log LM Studio / Ollama.`,onboarding_probe_error_invalid_url:()=>`Base URL phải bắt đầu bằng http:// hoặc https://.`,onboarding_probe_error_parse:()=>`Endpoint không trả về danh sách model đúng định dạng mong đợi. Kiểm tra URL có trỏ đúng tới API root tương thích OpenAI.`,onboarding_probe_error_timeout:()=>`Endpoint không phản hồi kịp thời. Kiểm tra server đang chạy và URL chính xác.`,onboarding_probe_error_unreachable:()=>`Không thể truy cập Base URL đã cấu hình.`,onboarding_probe_ok:e=>`Đã kết nối. Có ${e?.n} model khả dụng.`,onboarding_probe_probing:()=>`Đang kiểm tra kết nối…`,onboarding_probe_test_button:()=>`Kiểm tra kết nối`,onboarding_provider_label:()=>`Chế độ thiết lập`,onboarding_quick_setup_badge:()=>`thiết lập nhanh`,onboarding_skip:()=>`Bỏ qua thiết lập`,onboarding_skipped:()=>`Đã bỏ qua thiết lập — dùng cấu hình hiện có.`,onboarding_step_finish_desc:()=>`Xem lại và vào ứng dụng.`,onboarding_step_finish_title:()=>`Hoàn tất`,onboarding_step_password_desc:()=>`Bảo vệ Web UI trước khi chia sẻ.`,onboarding_step_password_title:()=>`Mật khẩu tùy chọn`,onboarding_step_setup_desc:()=>`Lưu cấu hình provider tối thiểu cho Hermes.`,onboarding_step_setup_title:()=>`Thiết lập nhà cung cấp`,onboarding_step_system_desc:()=>`Xác minh Hermes Agent và khả năng truy cập config.`,onboarding_step_system_title:()=>`Kiểm tra hệ thống`,onboarding_step_workspace_desc:()=>`Chọn mặc định cho phiên mới và chat.`,onboarding_step_workspace_title:()=>`Không gian làm việc + model`,onboarding_title:()=>`Chào mừng đến với Talaria Web`,onboarding_unknown:()=>`Không xác định`,onboarding_workspace_help:()=>`Chọn model Hermes sẽ dùng cho các chat mới sau khi hoàn tất thiết lập.`,onboarding_workspace_or_path:()=>`Hoặc nhập đường dẫn workspace`,open_in_browser:()=>`Mở trong trình duyệt`,open_in_vscode:()=>`Mở bằng VS Code`,open_in_vscode_failed:()=>`Mở bằng VS Code thất bại: `,outline_empty:()=>`Chưa có câu hỏi nào.`,outline_loading:()=>`Đang tải…`,outline_minimap_label:()=>`Dòng thời gian cuộc trò chuyện`,outline_minimap_mark:e=>`Câu hỏi ${e?.a0}: ${e?.a1}`,outline_title:()=>`Dàn ý`,panel_agents:()=>`Tác tử`,panel_agents_empty:()=>`Chưa có tác tử nào chạy trong cuộc trò chuyện này.`,panel_agents_transcript:()=>`Mở bản ghi`,panel_agents_transcript_for:e=>`Bản ghi: ${e?.goal}`,panel_agents_unavailable:()=>`Tác tử hiện không báo được trạng thái.`,panel_agents_updated:e=>`Cập nhật ${e?.time}`,panel_files_unavailable:()=>`Cuộc trò chuyện này không có không gian làm việc.`,panel_label:()=>`Bảng bên`,parse_failed_note:()=>`phân tích thất bại`,password_env_var_locked:()=>`Biến môi trường HERMES_WEBUI_PASSWORD hiện đang được đặt và có ưu tiên cao hơn. Hãy unset biến này và khởi động lại server để quản lý mật khẩu tại đây.`,password_env_var_locked_placeholder:()=>`Đã khóa: biến môi trường HERMES_WEBUI_PASSWORD đang được đặt`,password_placeholder:()=>`Nhập mật khẩu mới…`,path_copied:()=>`Đã sao chép đường dẫn file vào clipboard`,path_copy_failed:()=>`Sao chép đường dẫn thất bại: `,pdf_download:()=>`Tải PDF`,pdf_error:()=>`Không thể hiển thị xem trước PDF`,pdf_loading:e=>`Đang tải PDF ${e?.a0}…`,pdf_no_pages:()=>`PDF không có trang nào`,pdf_too_large:()=>`PDF quá lớn để xem trực tiếp`,pdf_truncated:e=>`Đang hiển thị ${e?.a0} trên ${e?.a1} trang đầu — hãy tải xuống để xem toàn bộ tài liệu`,personal_memory:()=>`Bộ nhớ cá nhân`,personalities_load_failed:()=>`Tải personality thất bại`,personality_cleared:()=>`Đã xóa personality`,personality_switch_hint:()=>"\n\nDùng `/personality <name>` để chuyển hoặc `/personality none` để xóa.",plugins_active_provider:()=>`Đang hoạt động (provider)`,plugins_disabled:()=>`Đã tắt`,plugins_enable_toggle:()=>`Bật`,plugins_enabled:()=>`Đã bật`,plugins_load_failed:()=>`Tải plugin thất bại: `,plugins_no_description:()=>`Không có mô tả.`,plugins_no_hooks:()=>`Không có lifecycle hook nào được đăng ký`,plugins_provider_no_hooks:()=>`Plugin provider — không có hook hiển thị agent`,plugins_registered_hooks:()=>`Lifecycle hook đã đăng ký`,plugins_unnamed:()=>`Plugin chưa đặt tên`,preserved_task_list_label:()=>`Danh sách tác vụ được giữ lại`,primary_navigation:()=>`Điều hướng chính`,process_wakeup_label:()=>`Đánh thức nền`,process_wakeup_matched:()=>`Đã khớp mẫu theo dõi`,profile_active:()=>`ĐANG HOẠT ĐỘNG`,profile_api_key_placeholder:()=>`API key (tùy chọn)`,profile_api_keys_configured:()=>`Đã cấu hình API key`,profile_base_url_placeholder:()=>`Base URL (tùy chọn, ví dụ: http://localhost:11434)`,profile_base_url_rule:()=>`Base URL phải bắt đầu bằng http:// hoặc https://`,profile_clone_label:()=>`Nhân bản cấu hình từ profile đang hoạt động`,profile_created:e=>`Đã tạo profile: ${e?.name}`,profile_default_label:()=>`(mặc định)`,profile_delete_confirm_message:()=>`Toàn bộ phiên, cấu hình, kỹ năng và bộ nhớ của profile này sẽ bị xóa vĩnh viễn. Hành động này không thể hoàn tác.`,profile_delete_confirm_title:e=>`Xóa hồ sơ "${e?.name}"?`,profile_delete_title:()=>`Xóa profile này`,profile_deleted:e=>`Đã xóa profile: ${e?.name}`,profile_gateway_running:()=>`Gateway đang hoạt động`,profile_gateway_stopped:()=>`Gateway đã dừng`,profile_model_hint:()=>`Chọn từ các provider và model đã cấu hình cho profile mới này.`,profile_model_label:()=>`Model / nhà cung cấp`,profile_model_use_default:()=>`Dùng mặc định của profile đang hoạt động`,profile_name_label:()=>`Tên`,profile_name_placeholder:()=>`Tên profile (chữ thường, a-z 0-9 dấu gạch ngang)`,profile_name_rule:()=>`Chỉ chữ thường, số, dấu gạch ngang và gạch dưới`,profile_no_configuration:()=>`Không có cấu hình`,profile_skill_count:t=>(e(`vi`,t?.count,{}),`${t?.count} kỹ năng`),profile_switch_title:()=>`Chuyển sang hồ sơ này`,profile_switched:e=>`Đã chuyển sang profile: ${e?.name}`,profile_switched_new_conversation:e=>`Đã chuyển sang profile: ${e?.name} — đã bắt đầu cuộc trò chuyện mới`,profile_use:()=>`Sử dụng`,profiles_empty_sub:()=>`Chọn một profile agent từ sidebar để xem và chỉnh sửa cài đặt hoặc tạo profile mới.`,profiles_empty_title:()=>`Chọn một hồ sơ`,profiles_load_failed:()=>`Tải profile thất bại`,profiles_no_profiles:()=>`Không tìm thấy profile nào.`,project_name_prompt:()=>`Tên project:`,provider_category_easy_start:()=>`Khởi đầu dễ dàng`,provider_category_self_hosted:()=>`Mở / self-hosted`,provider_category_specialized:()=>`Chuyên biệt`,provider_cost_chart_title:e=>`Chi tiêu ${e?.n} ngày`,provider_cost_monthly_pace:e=>`Nhịp tháng: ${e?.amount}`,provider_cost_no_baseline:()=>`không có mốc`,provider_cost_not_enough_data:()=>`Chưa đủ dữ liệu. Biểu đồ sẽ hiển thị sau 2 bản ghi hằng ngày.`,provider_mismatch_label:()=>`Nhà cung cấp không khớp`,provider_mismatch_warning:e=>`"${e?.m}" có thể không hoạt động với provider đã cấu hình (${e?.p}). Vẫn gửi hoặc chạy \`hermes model\` trong terminal để chuyển đổi.`,provider_quota_account_limits_loaded:()=>`Đã tải giới hạn tài khoản.`,provider_quota_active_provider:()=>`Provider đang hoạt động`,provider_quota_budget_day:e=>`Ngân sách ${e?.percent} / ngày`,provider_quota_budget_hour:e=>`Ngân sách ${e?.percent} / giờ`,provider_quota_burn:e=>`Mức dùng ${e?.rate}`,provider_quota_credential_pool:()=>`Nhóm thông tin xác thực`,provider_quota_empty_early:e=>`Hết sớm ${e?.duration}`,provider_quota_forecast_unavailable:()=>`Không có dự báo`,provider_quota_last_checked:e=>`Kiểm tra lần cuối ${e?.a0}`,provider_quota_last_checked_after_refresh:()=>`Kiểm tra lần cuối sau khi làm mới`,provider_quota_lasts_through_reset:()=>`Đủ đến khi đặt lại`,provider_quota_metric_limit:()=>`Giới hạn`,provider_quota_metric_remaining:()=>`Còn lại`,provider_quota_metric_used:()=>`Đã dùng`,provider_quota_on_pace:()=>`Đúng nhịp`,provider_quota_over_pace:e=>`Vượt nhịp ${e?.percent}`,provider_quota_pace_unavailable:()=>`Không có nhịp`,provider_quota_pool_no_windows:()=>`Không có cửa sổ giới hạn tài khoản nào được báo cáo.`,provider_quota_pool_plans:e=>`Gói: ${e?.a0}`,provider_quota_pool_summary_available:e=>`${e?.a0}/${e?.a1} khả dụng`,provider_quota_pool_summary_checked:e=>`${e?.a0} đã kiểm tra`,provider_quota_pool_summary_exhausted:e=>`${e?.a0} đã hết`,provider_quota_pool_summary_failed:e=>`${e?.a0} thất bại`,provider_quota_refresh_failed:()=>`Làm mới usage provider thất bại`,provider_quota_refresh_succeeded:()=>`Đã làm mới usage provider`,provider_quota_refresh_title:()=>`Làm mới giới hạn sử dụng provider ngay bây giờ`,provider_quota_refresh_usage:()=>`Làm mới usage`,provider_quota_refreshing:()=>`Đang làm mới...`,provider_quota_remaining:e=>`Còn ${e?.percent}`,provider_quota_resets:e=>`Đặt lại ${e?.time}`,provider_quota_resets_meta:e=>`reset lúc ${e?.a0}`,provider_quota_retry_after:e=>`Thử lại sau ${e?.a0}`,provider_quota_session_limit:()=>`Giới hạn 5 giờ`,provider_quota_status_available:()=>`khả dụng`,provider_quota_status_checked:()=>`đã kiểm tra`,provider_quota_status_exhausted:()=>`đã hết`,provider_quota_status_failed:()=>`thất bại`,provider_quota_status_invalid_key:()=>`key không hợp lệ`,provider_quota_status_no_key:()=>`không có key`,provider_quota_status_removed:()=>`đã xóa`,provider_quota_status_stale:()=>`dữ liệu cũ`,provider_quota_status_unavailable:()=>`không khả dụng`,provider_quota_status_unsupported:()=>`không hỗ trợ`,provider_quota_title:()=>`Hạn mức nhà cung cấp`,provider_quota_unavailable:()=>`Trạng thái quota không khả dụng`,provider_quota_under_pace:e=>`Dưới nhịp ${e?.percent}`,provider_quota_used_meta:e=>`${e?.a0} đã dùng`,provider_quota_weekly_limit:()=>`Giới hạn hàng tuần`,provider_quota_window_fallback:()=>`Khoảng thời gian`,providers_empty:()=>`Không tìm thấy nhà cung cấp nào có thể cấu hình.`,providers_enter_key:()=>`Vui lòng nhập khóa API`,providers_key_placeholder_replace:()=>`Nhập key mới để thay thế…`,providers_key_removed:()=>`Đã xóa API key`,providers_key_updated:()=>`Đã lưu API key`,providers_models_refreshed:()=>`Đã làm mới model`,providers_oauth_config_yaml_hint:()=>`Token được cấu hình qua config.yaml. Để cập nhật, chỉnh sửa phần providers trong config.yaml hoặc chạy hermes auth.`,providers_oauth_hint:()=>`Đã xác thực bằng OAuth. Không cần API key.`,providers_oauth_not_configured_hint:()=>`Chưa xác thực. Chạy hermes auth trong terminal để cấu hình provider này.`,providers_refresh_models:()=>`Làm mới model`,providers_refreshing:()=>`Đang làm mới…`,providers_remove:()=>`Xóa`,providers_removing:()=>`Đang xóa…`,providers_save:()=>`Lưu`,providers_saving:()=>`Đang lưu…`,providers_section_meta:()=>`Quản lý API key cho các nhà cung cấp AI. Thay đổi có hiệu lực ngay lập tức.`,providers_section_title:()=>`Nhà cung cấp`,providers_status_configured:()=>`Đã cấu hình API key`,providers_status_model:()=>`Mô hình`,providers_status_not_configured:()=>`Chưa có API key`,providers_status_not_configured_label:()=>`Chưa cấu hình`,providers_tab_title:()=>`Provider`,queued_cancel:()=>`Hủy tin nhắn đang chờ`,queued_count:e=>`${e?.n} đang chờ`,queued_label:()=>`Gửi sau phản hồi`,raw_view:()=>`Dữ liệu thô`,reconnect_active:()=>`Một phản hồi vẫn đang được tạo. Tải lại khi sẵn sàng?`,reconnect_finished:()=>`Một phản hồi đang diễn ra khi bạn rời đi lần trước. Tin nhắn có thể đã được cập nhật.`,reference_only_label:()=>`Chỉ tham khảo`,regen_failed:()=>`Tạo lại thất bại: `,regenerate:()=>`Tạo lại phản hồi`,remove:()=>`Xóa bỏ`,remove_failed:()=>`Xóa thất bại: `,remove_title:()=>`Xóa`,rename_failed:()=>`Đổi tên thất bại: `,rename_prompt:()=>`Tên mới:`,rename_title:()=>`Đổi tên`,renamed_to:()=>`Đã đổi tên thành `,retrieval_context_label:()=>`Ngữ cảnh đã lập chỉ mục`,retrieval_context_preview:()=>`Các tin nhắn trước được lưu và có thể truy xuất bằng công cụ ngữ cảnh`,retry_failed:()=>`Gửi lại thất bại: `,reveal_failed:()=>`Hiển thị thất bại: `,reveal_in_finder:()=>`Hiện trong trình quản lý tệp`,runtime_notice_region:()=>`Trạng thái kết nối và thời gian chạy`,runtime_notice_reload_title:()=>`Tải lại tin nhắn?`,runtime_notice_restart_slow_title:()=>`Máy chủ phản hồi lâu hơn dự kiến`,runtime_notice_restarting_title:()=>`Đang khởi động lại…`,runtime_notice_restored_detail:()=>`Hermes đã có thể truy cập lại. Đang kết nối lại cuộc trò chuyện này.`,runtime_notice_restored_title:()=>`Đã khôi phục kết nối`,save:()=>`Lưu`,save_failed:()=>`Lưu thất bại: `,save_skill:()=>`Lưu kỹ năng`,save_title:()=>`Lưu thay đổi`,saved:()=>`Đã lưu`,saved_prompts_delete:()=>`Xóa prompt`,saved_prompts_empty:()=>`Chưa có prompt đã lưu.`,saved_prompts_empty_input:()=>`Hãy nhập prompt trước khi lưu`,saved_prompts_save_current:()=>`Lưu nội dung hiện tại thành prompt`,saved_prompts_saved:()=>`Đã lưu prompt`,scheduled_jobs:()=>`Tác vụ đã lên lịch`,search:()=>`Tìm kiếm`,search_skills:()=>`Tìm kỹ năng...`,selected_text_refine:()=>`Tinh chỉnh`,selected_text_refine_instruction:()=>`Hướng dẫn tinh chỉnh:`,selected_text_refine_title:()=>`Bắt đầu bản nháp tinh chỉnh có thể chỉnh sửa từ đoạn đã chọn`,selected_text_reply:()=>`Trả lời với đoạn đã chọn`,selected_text_reply_appended:()=>`Đã thêm đoạn đã chọn vào ô nhập`,selected_text_reply_title:()=>`Thêm đoạn chat đã chọn làm ngữ cảnh trích dẫn`,session_archive:()=>`Lưu trữ cuộc trò chuyện`,session_archive_desc:()=>`Ẩn cuộc trò chuyện này cho tới khi hiện archived`,session_archive_failed:()=>`Lưu trữ thất bại: `,session_archive_worktree_desc:()=>`Ẩn cuộc trò chuyện này; giữ worktree trên đĩa`,session_archived:()=>`Đã lưu trữ phiên`,session_archived_worktree:()=>`Đã lưu trữ phiên. Worktree vẫn còn trên đĩa.`,session_attention_approval:e=>e?.n===1||e?.n===`1`?`Phê duyệt`:`${e?.n} phê duyệt`,session_attention_approval_title:()=>`Đang chờ quyết định cấp quyền`,session_attention_clarify:t=>(e(`vi`,t?.n,{}),t?.n===1||t?.n===`1`?`Câu hỏi`:`${t?.n} câu hỏi`),session_attention_clarify_title:()=>`Đang chờ câu trả lời của bạn`,session_attention_generic_title:()=>`Đang chờ thao tác từ người dùng`,session_batch_archive:()=>`Lưu trữ`,session_batch_archive_confirm:e=>`Lưu trữ ${e?.a0} cuộc trò chuyện?`,session_batch_archive_worktree_confirm:e=>`Lưu trữ ${e?.a0} cuộc trò chuyện? ${e?.a1} cuộc trò chuyện dùng worktree sẽ giữ nguyên thư mục worktree trên đĩa.`,session_batch_delete:()=>`Xóa`,session_batch_delete_confirm:e=>`Xóa ${e?.a0} cuộc trò chuyện?`,session_batch_delete_worktree_confirm:e=>`Xóa ${e?.a0} cuộc trò chuyện? ${e?.a1} cuộc trò chuyện dùng worktree sẽ giữ nguyên thư mục worktree trên đĩa.`,session_batch_move:()=>`Chuyển vào dự án`,session_child_toggle_hint:e=>`${e?.a0} — các cuộc trò chuyện con được tạo từ phiên này. Bấm để hiện hoặc ẩn chúng.`,session_copy_link:()=>`Sao chép liên kết cuộc trò chuyện`,session_copy_link_desc:()=>`Sao chép liên kết trực tiếp tới cuộc trò chuyện này`,session_delete:()=>`Xóa cuộc trò chuyện`,session_delete_confirm:()=>`Xóa cuộc trò chuyện này?`,session_delete_desc:()=>`Xóa vĩnh viễn cuộc trò chuyện này`,session_delete_worktree_confirm:e=>`Xóa cuộc trò chuyện này? Worktree tại ${e?.path} sẽ vẫn còn trên đĩa.`,session_delete_worktree_desc:()=>`Chỉ xóa cuộc trò chuyện WebUI; giữ worktree trên đĩa`,session_deleted:()=>`Đã xóa cuộc trò chuyện`,session_deleted_worktree:()=>`Đã xóa cuộc trò chuyện. Worktree vẫn còn trên đĩa.`,session_deselect_all:()=>`Bỏ chọn tất cả`,session_duplicate:()=>`Nhân bản cuộc trò chuyện`,session_duplicate_desc:()=>`Tạo bản sao với cùng workspace và model`,session_duplicate_failed:()=>`Nhân bản thất bại: `,session_duplicated:()=>`Đã nhân bản phiên`,session_hidden:()=>`Đã ẩn phiên khỏi danh sách`,session_hide_external:()=>`Ẩn khỏi danh sách`,session_hide_external_desc:()=>`Ẩn phiên import này khỏi WebUI mà không xóa lịch sử nguồn.`,session_imported:()=>`Đã nhập phiên trò chuyện`,session_jump_end:()=>`Cuối`,session_jump_end_label:()=>`Nhảy tới cuối phiên`,session_jump_start:()=>`Đầu`,session_jump_start_label:()=>`Nhảy tới đầu phiên`,session_lineage_segment_open:()=>`Mở đoạn lineage`,session_lineage_segment_untitled:()=>`Segment chưa có tiêu đề`,session_lineage_static_hint:e=>`${e?.a0} — các lượt ngữ cảnh trước đó đang được thu gọn ở đây.`,session_lineage_toggle_hint:e=>`${e?.a0} — các lượt ngữ cảnh trước đó đang được thu gọn ở đây. Bấm để hiện hoặc ẩn chúng.`,session_link_copied:()=>`Đã sao chép liên kết cuộc trò chuyện vào clipboard`,session_link_copy_failed:()=>`Sao chép liên kết cuộc trò chuyện thất bại: `,session_meta_children:t=>(e(`vi`,t?.n,{}),`${t?.n} phiên con`),session_meta_messages:t=>(e(`vi`,t?.n,{}),`${t?.n} tin nhắn`),session_meta_segments:t=>(e(`vi`,t?.n,{}),`${t?.n} lượt trước`),session_move_project:()=>`Chuyển sang dự án`,session_move_project_desc_has:()=>`Đổi project cho cuộc trò chuyện này`,session_move_project_desc_none:()=>`Gán project cho cuộc trò chuyện này`,session_new_message:()=>`Tin nhắn mới`,session_new_message_label:()=>`Có tin nhắn mới, nhảy xuống cuối`,session_no_selection:()=>`Chưa chọn cuộc trò chuyện nào`,session_pin:()=>`Ghim cuộc trò chuyện`,session_pin_desc:()=>`Giữ cuộc trò chuyện này ở đầu danh sách`,session_pin_failed:()=>`Ghim thất bại: `,session_readonly_title_hint:e=>`Phiên import chỉ đọc — ${e?.a0}`,session_rename:()=>`Đổi tên cuộc trò chuyện`,session_rename_desc:()=>`Chỉnh sửa tiêu đề cuộc trò chuyện này`,session_rename_failed_no_row:()=>`Không thể bắt đầu đổi tên — không tìm thấy hàng.`,session_restore:()=>`Khôi phục cuộc trò chuyện`,session_restore_desc:()=>`Đưa cuộc trò chuyện này trở lại danh sách chính`,session_restored:()=>`Đã khôi phục phiên`,session_select_all:()=>`Chọn tất cả`,session_select_mode:()=>`Chọn`,session_select_mode_desc:()=>`Chọn các cuộc trò chuyện để quản lý hàng loạt`,session_selected_count:e=>`${e?.a0} mục đã chọn`,session_stop_response:()=>`Dừng phản hồi`,session_stop_response_desc:()=>`Hủy phản hồi đang chạy cho cuộc trò chuyện này`,session_time_bucket_last_week:()=>`Tuần trước`,session_time_bucket_older:()=>`Cũ hơn`,session_time_bucket_this_week:()=>`Tuần này`,session_time_bucket_today:()=>`Hôm nay`,session_time_bucket_yesterday:()=>`Hôm qua`,session_time_days_ago:e=>`${e?.n}n`,session_time_hours_ago:e=>`${e?.n}g`,session_time_last_week:()=>`1t`,session_time_minutes_ago:e=>`${e?.n}p`,session_time_unknown:()=>`Không xác định`,session_title_regenerate:()=>`Tạo lại tiêu đề`,session_title_regenerate_desc:()=>`Yêu cầu Hermes tạo tiêu đề mới từ cuộc trò chuyện`,session_title_regenerate_failed:()=>`Tạo lại tiêu đề thất bại: `,session_title_regenerated:e=>`Đã tạo lại tiêu đề: ${e?.title}`,session_title_regenerating:()=>`Đang tạo lại tiêu đề…`,session_toolsets:()=>`Bộ công cụ phiên`,session_toolsets_applied:()=>`Đã cập nhật bộ công cụ`,session_toolsets_apply:()=>`Áp dụng`,session_toolsets_clear:()=>`Xóa (dùng cấu hình toàn cục)`,session_toolsets_cleared:()=>`Đã xóa bộ công cụ — dùng cấu hình toàn cục`,session_toolsets_configured_servers:()=>`Máy chủ MCP đã cấu hình`,session_toolsets_custom:()=>`Tùy chỉnh`,session_toolsets_desc:()=>`Giới hạn công cụ khả dụng cho phiên này (để trống = dùng cấu hình toàn cục)`,session_toolsets_failed:()=>`Cập nhật bộ công cụ thất bại: `,session_toolsets_global:()=>`Toàn cục (mặc định)`,session_toolsets_loading_servers:()=>`Đang tải các máy chủ đã cấu hình...`,session_toolsets_no_configured_servers:()=>`Chưa có máy chủ MCP nào được cấu hình`,session_toolsets_profile_defaults:()=>`Mặc định của profile đang hoạt động`,session_toolsets_use_profile_defaults:()=>`Dùng mặc định của profile đang hoạt động`,session_unpin:()=>`Bỏ ghim cuộc trò chuyện`,session_unpin_desc:()=>`Bỏ khỏi danh sách ghim`,session_worktree_remove:()=>`Gỡ worktree`,session_worktree_remove_ahead_warning:t=>(e(`vi`,t?.ahead,{}),`${t?.ahead} commit chưa push sẽ bị mất.`),session_worktree_remove_confirm:e=>`Gỡ git worktree khỏi đĩa?
|
|
1
|
+
import{t as e}from"./registry-g7w3353u.js";var t=import.meta.url,n={_default:()=>`mặc định`,active_conversation_meta:t=>(e(`vi`,t?.count,{}),`${t?.title} · ${t?.count} tin nhắn`),active_conversation_none:()=>`Chưa chọn cuộc trò chuyện hoạt động.`,add:()=>`Thêm`,add_failed:()=>`Thêm thất bại: `,agent_soul:()=>`Linh hồn Agent`,all_uploads_failed:e=>`Toàn bộ ${e?.n} lần tải lên đều thất bại`,approval_btn_always:()=>`Luôn cho phép`,approval_btn_always_title:()=>`Luôn cho phép mẫu lệnh này`,approval_btn_deny:()=>`Từ chối`,approval_btn_deny_title:()=>`Từ chối — không chạy lệnh này`,approval_btn_once:()=>`Cho phép một lần`,approval_btn_once_title:()=>`Cho phép lệnh này một lần (Enter)`,approval_btn_session:()=>`Cho phép trong cuộc trò chuyện này`,approval_btn_session_title:()=>`Cho phép trong phiên trò chuyện này`,approval_desc_prefix:()=>`Phát hiện lệnh nguy hiểm`,approval_gateway_unsupported:()=>`Phê duyệt cần gateway mới hơn. Hãy nâng cấp Hermes gateway đang kết nối để bật tính năng này.`,approval_gateway_unsupported_label:()=>`Không hỗ trợ phê duyệt`,approval_heading:()=>`Yêu cầu phê duyệt`,approval_more:()=>`Tùy chọn khác`,approval_pending_count:e=>e?.n===1||e?.n===`1`?`${e?.n} trong ${e?.n} đang chờ`:`1 trong ${e?.n} đang chờ`,approval_responding:()=>`Đang phản hồi…`,approval_skip_all:()=>`⚡ Bỏ qua tất cả trong phiên này`,approval_skip_all_title:()=>`Bỏ qua mọi yêu cầu phê duyệt cho phiên này`,archive_extracted:e=>`Đã giải nén ${e?.n} file từ ${e?.c} archive`,auth_ack_save_failed:()=>`Cập nhật xác nhận thất bại: `,auth_acknowledged_label:()=>`Tôi đã xem rủi ro này; hiển thị cảnh báo điều hướng ít khẩn cấp hơn.`,auth_disabled:()=>`Đã tắt xác thực — đã gỡ bảo vệ mật khẩu`,auth_disabled_warning_message:()=>`Instance này có thể truy cập mà không cần xác thực.`,auth_status_passkey_only:()=>`Chỉ dùng passkey`,auth_status_password:()=>`Xác thực bằng mật khẩu`,auth_status_unauthenticated:()=>`Chưa xác thực`,auth_warning_badge:()=>`Xác thực đã tắt`,auto_compress_label:()=>`Tự động nén`,available_commands:()=>`Các lệnh khả dụng:`,available_personalities:()=>`Các personality khả dụng:`,background_line_agent_completed:e=>`Tác tử “${e?.goal}” đã hoàn tất`,background_line_agent_failed:e=>`Tác tử “${e?.goal}” thất bại`,background_line_command_failed:e=>`Lệnh nền ${e?.command} thất bại`,background_line_command_failed_exit:e=>`Lệnh nền ${e?.command} thất bại (mã thoát ${e?.code})`,background_line_command_finished:e=>`Lệnh nền ${e?.command} đã xong`,background_review_failed:()=>`Tác vụ hoặc quá trình xem xét của tác nhân chính đã thất bại.`,background_review_parent:e=>`Xem xét của tác nhân chính: ${e?.state}`,background_review_reviewed:()=>`Tác nhân chính đã xem xét kết quả này.`,background_review_reviewing:()=>`Tác nhân chính đang xem xét kết quả này.`,background_review_unknown:()=>`Chưa rõ kết quả tác vụ hoặc quá trình xem xét của tác nhân chính.`,background_review_waiting:()=>`Đang chờ tác nhân chính xem xét kết quả này.`,background_update_details:()=>`Hiện toàn bộ kết quả nền`,bg_agents_failed:e=>`${e?.n} thất bại`,bg_agents_progress:e=>`Xong ${e?.done}/${e?.total}`,bg_card_title:()=>`Công việc nền`,bg_complete:()=>`Tác vụ nền hoàn tất`,bg_error_multi:e=>`${e?.count} phiên đã gặp lỗi`,bg_error_single:e=>`"${e?.title}" đã gặp lỗi`,bg_failed:()=>`Tác vụ nền thất bại: `,bg_hide_result:()=>`Ẩn kết quả`,bg_kind_background_command:()=>`Tác vụ nền`,bg_kind_delegation:()=>`Tác tử`,bg_kind_process:()=>`Lệnh`,bg_label:()=>`Kết quả nền:`,bg_no_answer:()=>`(không có câu trả lời)`,bg_result_unavailable:()=>`Kết quả không còn nữa.`,bg_running:()=>`Đang chạy nền...`,bg_show_result:()=>`Xem kết quả`,bg_status_attention:()=>`Cần chú ý`,bg_status_cancelled:()=>`Đã dừng`,bg_status_completed:()=>`Xong`,bg_status_failed:()=>`Thất bại`,bg_status_running:()=>`Đang chạy`,bg_status_unknown:()=>`Không rõ trạng thái`,bg_usage:()=>`Cách dùng: /background <tin nhắn>`,branch_failed:()=>`Fork thất bại: `,branch_forked:()=>`Đã fork sang phiên mới`,btw_asking:()=>`Đang hỏi câu hỏi phụ...`,btw_done:()=>`Đã trả lời câu hỏi phụ`,btw_failed:()=>`Câu hỏi phụ thất bại: `,btw_label:()=>`Câu hỏi phụ — không lưu vào lịch sử`,btw_no_answer:()=>`Không nhận được câu trả lời.`,busy_interrupt_confirm:()=>`Đã ngắt — đang gửi tin nhắn mới`,busy_steer_fallback:()=>`Steer không khả dụng — đã đưa vào hàng chờ lượt tiếp theo`,cancel:()=>`Hủy`,cancel_failed:()=>`Hủy thất bại.`,cancel_unavailable:()=>`Không thể hủy.`,cancelling:()=>`Đang hủy…`,checkpoint_date:()=>`Ngày`,checkpoint_diff_files_changed:t=>(e(`vi`,t?.n,{}),`${t?.n} tệp đã thay đổi`),checkpoint_diff_no_changes:()=>`Không tìm thấy khác biệt nào giữa checkpoint này và workspace hiện tại.`,checkpoint_diff_title:()=>`Các thay đổi trong checkpoint`,checkpoint_empty:()=>`Không tìm thấy checkpoint nào cho workspace này.`,checkpoint_error:()=>`Không thể tải checkpoint`,checkpoint_files:()=>`Tệp`,checkpoint_kept_user_edits:e=>`Đã giữ các chỉnh sửa của bạn: ${e?.files}`,checkpoint_loading:()=>`Đang tải điểm khôi phục…`,checkpoint_message:()=>`Tin nhắn`,checkpoint_restore:()=>`Khôi phục`,checkpoint_restore_confirm_message:e=>`Khôi phục các tệp mà tác tử đã thay đổi kể từ điểm kiểm tra "${e?.ckpt}"? Các tệp bạn chỉnh sửa thủ công sau lần ghi cuối của nó sẽ được giữ nguyên.`,checkpoint_restore_confirm_title:()=>`Khôi phục điểm khôi phục?`,checkpoint_restore_everything:()=>`Khôi phục tất cả`,checkpoint_restored:()=>`Đã khôi phục checkpoint`,checkpoint_skipped_oversize:e=>`Quá lớn để khôi phục: ${e?.files}`,checkpoint_title:()=>`Checkpoint`,checkpoint_view_diff:()=>`Xem diff`,clarify_composer_placeholder:()=>`Nhập câu trả lời…`,clarify_composer_placeholder_choices:()=>`Chọn một lựa chọn ở trên hoặc nhập câu trả lời…`,clarify_heading:()=>`Cần làm rõ`,clarify_hint:()=>`Chọn một tùy chọn hoặc nhập câu trả lời của bạn bên dưới.`,clarify_other:()=>`Khác`,clarify_progress:e=>`Câu hỏi ${e?.a0} / ${e?.a1}`,clarify_responding:()=>`Đang phản hồi…`,clarify_send:()=>`Gửi`,clear:()=>`Xóa`,clear_conversation_btn_tooltip:()=>`Xóa toàn bộ tin nhắn trong cuộc trò chuyện này`,clear_conversation_message:()=>`Xóa toàn bộ tin nhắn? Hành động này không thể hoàn tác.`,clear_conversation_title:()=>`Xóa cuộc trò chuyện`,clear_failed:()=>`Xóa thất bại: `,close_menu:()=>`Đóng menu`,cmd_background:()=>`Chạy prompt nền`,cmd_background_usage:()=>`/background <prompt> — chạy song song không chặn`,cmd_branch:()=>`Fork cuộc trò chuyện này thành phiên mới`,cmd_branch_usage:()=>`/branch [name] — fork cuộc trò chuyện (có thể đặt tên)`,cmd_btw:()=>`Đặt câu hỏi phụ (tạm thời)`,cmd_btw_usage:()=>`/btw <question> — đặt câu hỏi phụ bằng ngữ cảnh phiên`,cmd_clear:()=>`Xóa tin nhắn cuộc trò chuyện`,cmd_compact_alias:()=>`Bí danh cũ của /compress`,cmd_compress:()=>`Nén thủ công ngữ cảnh cuộc trò chuyện (cách dùng: /compress [chủ đề])`,cmd_goal:()=>`Đặt hoặc xem mục tiêu lâu dài`,cmd_help:()=>`Hiển thị các lệnh slash khả dụng`,cmd_interrupt:()=>`Hủy lượt hiện tại và gửi tin nhắn mới`,cmd_interrupt_confirm:()=>`Đã ngắt — đang gửi tin nhắn mới`,cmd_interrupt_no_msg:()=>`Cách dùng: /interrupt <tin nhắn>`,cmd_model:()=>`Chuyển model (ví dụ: /model gpt-4o)`,cmd_new:()=>`Bắt đầu phiên chat mới`,cmd_personality:()=>`Đổi personality của agent`,cmd_queue:()=>`Đưa tin nhắn vào hàng chờ cho lượt tiếp theo`,cmd_queue_confirm:()=>`Đã đưa tin nhắn vào hàng chờ`,cmd_queue_no_msg:()=>`Cách dùng: /queue <tin nhắn>`,cmd_queue_not_busy:()=>`Không có tác vụ hoạt động — cứ gửi bình thường`,cmd_reasoning:()=>`Bật/tắt hiển thị suy nghĩ (show/hide), đặt mức effort hoặc kiểm tra trạng thái hiện tại`,cmd_retry:()=>`Gửi lại tin nhắn cuối`,cmd_skills:()=>`Liệt kê các kỹ năng Hermes khả dụng`,cmd_status:()=>`Hiển thị thông tin phiên`,cmd_steer:()=>`Chèn điều chỉnh giữa lượt mà không ngắt agent`,cmd_steer_fallback:()=>`Steer không khả dụng — đã đưa vào hàng chờ lượt tiếp theo`,cmd_steer_no_msg:()=>`Cách dùng: /steer <tin nhắn>`,cmd_stop:()=>`Dừng phản hồi hiện tại`,cmd_terminal:()=>`Mở terminal của không gian làm việc`,cmd_theme:()=>`Đổi giao diện (theme: system/dark/light, skin: default/ares/mono/graphite/slate/poseidon/sisyphus/charizard/sienna/catppuccin/nous/geist-contrast/zeus/verdigris)`,cmd_title:()=>`Lấy hoặc đặt tiêu đề phiên`,cmd_undo:()=>`Xóa lượt trao đổi cuối`,cmd_usage:()=>`Bật/tắt hiển thị token usage`,cmd_use:()=>`Ép dùng một skill cho tin nhắn tiếp theo`,cmd_voice:()=>`Bật/tắt nhập microphone`,cmd_voice_use_mic:()=>`Bấm nút microphone trong composer.`,cmd_webui_only_session:()=>`Lệnh này không khả dụng cho các phiên được import từ CLI.`,cmd_workspace:()=>`Chuyển không gian làm việc theo tên`,cmd_yolo:()=>`Bật/tắt chế độ YOLO (bỏ qua phê duyệt)`,collapse_all:()=>`Thu gọn tất cả`,command_label:()=>`Lệnh`,composer_clarify:()=>`Gửi câu trả lời`,composer_clarify_next:()=>`Câu hỏi tiếp theo`,composer_compression_will_queue:()=>`Nhập tin nhắn — hệ thống sẽ xếp hàng và gửi sau khi nén xong`,composer_control_attach:()=>`Đính kèm`,composer_control_bg_badge:()=>`Huy hiệu nền`,composer_control_context:()=>`Ngữ cảnh`,composer_control_mobile_config:()=>`Cấu hình di động`,composer_control_model:()=>`Model`,composer_control_quota_chip:()=>`Chip hạn mức`,composer_control_reasoning:()=>`Lập luận`,composer_control_saved_prompts:()=>`Prompt đã lưu`,composer_control_status:()=>`Trạng thái`,composer_control_toolsets:()=>`Toolset`,composer_control_voice_mode:()=>`Chế độ giọng nói`,composer_control_workspace:()=>`Workspace`,composer_disabled_clarify:()=>`Hãy trả lời yêu cầu làm rõ`,composer_disabled_compression:()=>`Đang chờ nén hoàn tất`,composer_disabled_empty:()=>`Nhập tin nhắn để gửi`,composer_interrupt:()=>`Ngắt và gửi`,composer_mobile_context:()=>`Ngữ cảnh`,composer_mobile_quota:()=>`Hạn mức`,composer_mobile_reasoning:()=>`Lập luận`,composer_queue:()=>`Xếp hàng tin nhắn`,composer_send:()=>`Gửi tin nhắn`,composer_steer:()=>`Điều hướng phản hồi hiện tại`,composer_stop:()=>`Dừng tạo phản hồi`,compress_complete_label:()=>`Nén hoàn tất`,compress_failed_label:()=>`Nén thất bại`,compress_running_label:()=>`Đang nén`,compressing:()=>`Đang yêu cầu nén ngữ cảnh...`,content_required:()=>`Nội dung là bắt buộc`,context_block_flush_aria:()=>`Các khối ngữ cảnh sẽ được gửi kèm khi bạn nhấn gửi`,context_block_name_default:()=>`Ngữ cảnh`,context_block_remove:()=>`Xóa khối ngữ cảnh`,context_block_rename_aria:()=>`Đổi tên khối ngữ cảnh`,context_block_rename_hint:()=>`Bấm hoặc nhấn Enter để đổi tên`,context_compaction_label:()=>`Nén ngữ cảnh`,conversation_cleared:()=>`Đã xóa cuộc trò chuyện`,copied:()=>`Đã sao chép!`,copy:()=>`Sao chép`,copy_failed:()=>`Sao chép thất bại`,copy_file_path:()=>`Sao chép đường dẫn file`,copy_relative_path:()=>`Sao chép đường dẫn tương đối`,create:()=>`Tạo`,create_failed:()=>`Tạo thất bại: `,create_job:()=>`Tạo job`,created:()=>`Đã tạo `,cron_advanced_label:()=>`Nâng cao`,cron_all_runs:()=>`Tất cả lần chạy`,cron_attention_copy_diagnostics:()=>`Sao chép chẩn đoán`,cron_attention_croniter_hint:()=>`Runtime Gateway có thể thiếu package croniter. Hãy khởi động lại Gateway với hỗ trợ cron rồi tiếp tục job này.`,cron_attention_desc:()=>`Job lặp lại này không có thời gian chạy tiếp theo. Scheduler có thể đã không tính được lần chạy kế tiếp.`,cron_attention_resume:()=>`Tiếp tục và tính toán lại`,cron_attention_run_once:()=>`Chạy một lần ngay`,cron_collapse_output:()=>`Thu gọn output`,cron_collapse_prompt:()=>`Thu gọn prompt`,cron_context_from_empty_hint:()=>`Chưa có job đã lên lịch nào khác để nối chuỗi.`,cron_context_from_hint:()=>`Chèn đầu ra mới nhất của các job đó làm ngữ cảnh cho mỗi lần chạy (job A thu thập, job B xử lý).`,cron_context_from_label:()=>`Lấy ngữ cảnh từ job`,cron_continuity_hint:()=>`Mỗi lần chạy đều thấy đầu ra trước đó của chính job này, nhờ vậy có thể loại trùng và tiếp tục từ chỗ đã dừng.`,cron_continuity_label:()=>`Tính liên tục`,cron_delete_confirm_message:()=>`Hành động này không thể hoàn tác.`,cron_delete_confirm_title:()=>`Xóa cron job`,cron_deliver_custom:()=>`Đích gửi tùy chỉnh`,cron_deliver_label:()=>`Gửi output tới`,cron_deliver_local:()=>`Cục bộ (chỉ lưu đầu ra)`,cron_diagnostics_copied:()=>`Đã sao chép chẩn đoán cron`,cron_duplicate:()=>`Nhân bản`,cron_duplicated:()=>`Đã nhân bản job (tạm dừng)`,cron_expand_output:()=>`Mở rộng output`,cron_expand_prompt:()=>`Mở rộng prompt`,cron_hide_runs:()=>`Ẩn lần chạy`,cron_job_created:()=>`Đã tạo job`,cron_job_deleted:()=>`Đã xóa job`,cron_job_name_placeholder:()=>`Tên job`,cron_job_paused:()=>`Đã tạm dừng job`,cron_job_resumed:()=>`Đã tiếp tục job`,cron_job_triggered:()=>`Đã kích hoạt job`,cron_job_updated:()=>`Đã cập nhật job`,cron_last:()=>`Lần cuối`,cron_last_output:()=>`Output cuối`,cron_mode_label:()=>`Chế độ`,cron_model_hint:()=>`Ghi đè model mặc định cho job này.`,cron_model_label:()=>`Ghi đè model`,cron_model_no_agent_hint:()=>`Job no-agent chạy trực tiếp script đã cấu hình; không dùng model.`,cron_model_use_default:()=>`Mặc định (dùng profile/hệ thống mặc định)`,cron_monitor_hint:()=>`URL http(s) hoặc đường dẫn script tùy chọn, được kiểm tra mỗi nhịp. Đầu ra giống hệt sẽ bỏ qua lần chạy; đầu ra thay đổi sẽ đánh thức agent kèm phần khác biệt.`,cron_monitor_label:()=>`Nguồn giám sát`,cron_monitor_no_agent_conflict:()=>`Không thể kết hợp giám sát với job chỉ chạy script.`,cron_monitor_no_agent_hint:()=>`Không dùng được với job chỉ chạy script: giám sát tồn tại để đánh thức hoặc chặn agent.`,cron_monitor_placeholder:()=>`https://example.com/status — hoặc — check-feed.sh`,cron_name_label:()=>`Tên`,cron_name_placeholder:()=>`Tùy chọn`,cron_next:()=>`Tiếp theo`,cron_no_agent_hint:()=>`Chạy script và gửi nguyên văn đầu ra chuẩn của nó, không dùng LLM. Cần một đường dẫn script.`,cron_no_agent_label:()=>`Job chỉ chạy script`,cron_no_agent_script_required:()=>`Job chỉ chạy script cần một đường dẫn script.`,cron_no_jobs:()=>`Không tìm thấy job đã lên lịch.`,cron_no_runs_yet:()=>`(chưa có lần chạy nào)`,cron_pause:()=>`Tạm dừng`,cron_profile_server_default:()=>`mặc định của server`,cron_profile_server_default_hint:()=>`Dùng profile mặc định của server WebUI tại thời điểm chạy. Các job hiện có không có profile sẽ giữ hành vi cũ này.`,cron_prompt_required:()=>`Prompt là bắt buộc`,cron_reasoning_effort_default:()=>`Mặc định (theo cấu hình)`,cron_reasoning_effort_hint:()=>`Ghim job này vào một mức suy luận duy nhất, ưu tiên hơn thiết lập chung và theo từng mô hình khi chạy.`,cron_reasoning_effort_label:()=>`Mức suy luận`,cron_reasoning_effort_no_agent_hint:()=>`Không dùng đến trong job chỉ chạy script: không có lời gọi LLM nào để cấu hình.`,cron_repeat_hint:()=>`Số lần chạy trước khi job kết thúc. Để trống giữ giá trị mặc định: một lần với job chạy một lượt, chạy mãi với lịch lặp lại. Chỉ đặt được khi tạo.`,cron_repeat_invalid:()=>`Số lần lặp phải là số nguyên từ 1 trở lên.`,cron_repeat_label:()=>`Số lần lặp`,cron_repeat_placeholder:()=>`Để trống để dùng giá trị mặc định`,cron_resume:()=>`Tiếp tục`,cron_run_now:()=>`Chạy ngay`,cron_schedule_hint:()=>`Dùng 'every 1h' hoặc biểu thức cron cho job lặp lại. Các khoảng thời gian đơn như '30m' chỉ chạy một lần.`,cron_schedule_hour_label:()=>`Giờ`,cron_schedule_label:()=>`Lịch chạy`,cron_schedule_minute_label:()=>`Phút`,cron_schedule_month_day_label:()=>`Ngày`,cron_schedule_once_warning:()=>`Các dạng thời lượng như '30m' chỉ chạy một lần và sẽ bị xóa sau khi chạy. Dùng 'every 30m' để giữ job lặp lại.`,cron_schedule_placeholder:()=>`Lịch chạy`,cron_schedule_preset_custom:()=>`Tùy chỉnh`,cron_schedule_preset_daily:()=>`Hàng ngày`,cron_schedule_preset_hourly:()=>`Hàng giờ`,cron_schedule_preset_label:()=>`Cài đặt sẵn`,cron_schedule_preset_monthly:()=>`Hàng tháng`,cron_schedule_preset_weekdays:()=>`Ngày trong tuần`,cron_schedule_preset_weekly:()=>`Hàng tuần`,cron_schedule_required:()=>`Lịch chạy là bắt buộc`,cron_schedule_required_example:()=>`Lịch chạy là bắt buộc (ví dụ: "0 9 * * *" hoặc "every 1h")`,cron_schedule_time_hint:()=>`Thời gian dùng giờ máy chủ; cron chạy phía máy chủ.`,cron_schedule_weekday_label:()=>`Thứ trong tuần (0-6, CN-T7)`,cron_script_badge_title:()=>`Job script (không dùng agent)`,cron_script_context_hint:()=>`Tùy chọn. Chạy mỗi nhịp; đầu ra chuẩn của nó được chèn vào prompt làm ngữ cảnh. Đường dẫn tương đối được phân giải trong ~/.hermes/scripts/.`,cron_script_job_banner:()=>`Chạy script theo lịch — stdout được gửi tới đích. Không có agent, prompt hoặc skill.`,cron_script_output:()=>`Đầu ra script`,cron_script_path_hint:()=>`Được resolve dưới ~/.hermes/scripts/ trừ khi là đường dẫn tuyệt đối. Hãy chỉnh sửa file script trên server để thay đổi hành vi.`,cron_script_path_label:()=>`Đường dẫn script`,cron_skills_edit_hint:()=>`Danh sách kỹ năng không thể chỉnh sửa sau khi tạo.`,cron_skills_label:()=>`Kỹ năng`,cron_skills_placeholder:()=>`Thêm kỹ năng (tùy chọn)…`,cron_status_active:()=>`đang hoạt động`,cron_status_error:()=>`lỗi`,cron_status_needs_attention:()=>`cần chú ý`,cron_status_off:()=>`tắt`,cron_status_paused:()=>`tạm dừng`,cron_status_running:()=>`đang chạy…`,cron_toast_notifications_disabled:()=>`Đã tắt`,cron_toast_notifications_enabled:()=>`Đã bật`,cron_toast_notifications_hint:()=>`Hiển thị toast khi cron này hoàn tất. Badge Tasks và dấu lần chạy mới vẫn cập nhật khi tùy chọn này tắt.`,cron_toast_notifications_label:()=>`Thông báo toast khi hoàn tất`,cron_view_full_output:()=>`Xem toàn bộ đầu ra`,cron_workdir_label:()=>`Thư mục làm việc`,csv_error:()=>`Không thể tải tệp CSV`,csv_header_note:()=>`Hàng đầu tiên được hiển thị làm tiêu đề bảng`,csv_loading:()=>`Đang tải CSV`,csv_no_data:()=>`Tệp CSV không đủ dữ liệu để hiển thị thành bảng`,csv_too_large:()=>`Tệp CSV quá lớn để hiển thị trực tiếp`,ctx_compress_action:()=>`⚠ Nén ngay để giải phóng ngữ cảnh`,ctx_compress_hint:()=>`Nén ngữ cảnh để giải phóng dung lượng →`,current_password_incorrect:()=>`Mật khẩu hiện tại không đúng.`,current_password_label:()=>`Mật khẩu hiện tại`,current_password_placeholder:()=>`Nhập mật khẩu hiện tại…`,current_password_required:()=>`Cần mật khẩu hiện tại để thay đổi hoặc tắt xác thực.`,current_task_list:()=>`Danh sách tác vụ hiện tại`,dashboard_loopback_warning:()=>`Dashboard chỉ cho phép loopback trên server. Hãy truy cập trực tiếp từ server hoặc khởi động lại với --host 0.0.0.0 (không an toàn).`,delete_confirm:e=>`Xóa ${e?.name}?`,delete_dir_confirm:e=>`Xóa thư mục "${e?.name}" và toàn bộ nội dung?`,delete_failed:()=>`Xóa thất bại: `,delete_title:()=>`Xóa`,deleted:()=>`Đã xóa `,dialog_confirm_btn:()=>`Xác nhận`,dialog_confirm_title:()=>`Xác nhận thao tác`,dialog_prompt_title:()=>`Nhập giá trị`,diff_error:()=>`Không thể tải file patch`,diff_loading:()=>`Đang tải diff`,diff_too_large:()=>`File patch quá lớn để hiển thị trực tiếp`,disable:()=>`Tắt`,disable_auth:()=>`Tắt xác thực`,disable_auth_confirm_message:()=>`Bất kỳ ai cũng có thể truy cập instance này.`,disable_auth_confirm_title:()=>`Tắt bảo vệ mật khẩu`,disable_auth_failed:()=>`Tắt xác thực thất bại: `,disable_auth_typed_confirm:()=>`Nhập DISABLE AUTH để xác nhận`,discard:()=>`Bỏ thay đổi`,discard_file_edits_message:()=>`Chuyển workspace sẽ bỏ các chỉnh sửa file chưa lưu trong phần xem trước.`,discard_file_edits_title:()=>`Bỏ thay đổi file?`,dismiss:()=>`Đóng`,done:()=>`Hoàn tất`,double_click_rename:()=>`Nhấp đúp để đổi tên`,download_folder:()=>`Tải thư mục`,download_transcript:()=>`Tải dưới dạng Markdown`,downloading:e=>`Đang tải ${e?.name}…`,edit:()=>`Chỉnh sửa`,edit_failed:()=>`Chỉnh sửa thất bại: `,edit_message:()=>`Chỉnh sửa tin nhắn`,edit_title:()=>`Chỉnh sửa file này`,editing:()=>`Đang chỉnh sửa`,empty_dir:()=>`(trống)`,empty_hero_title:()=>`Chúng ta làm gì nào?`,empty_hero_title_workspace:e=>`Chúng ta làm gì trong ${e?.a0}?`,error_prefix:()=>`Lỗi: `,excalidraw_download:()=>`Tải xuống`,excalidraw_empty:()=>`Sơ đồ trống`,excalidraw_error:()=>`Không thể tải tệp Excalidraw`,excalidraw_invalid:()=>`Định dạng tệp Excalidraw không hợp lệ`,excalidraw_label:()=>`Sơ đồ`,excalidraw_loading:()=>`Đang tải sơ đồ`,excalidraw_render_error:()=>`Không thể render sơ đồ`,excalidraw_simplified:()=>`Bản xem trước SVG đã được giản lược — không hoàn toàn giống canvas Excalidraw`,excalidraw_too_large:()=>`Tệp Excalidraw quá lớn để hiển thị trực tiếp`,expand_all:()=>`Mở rộng tất cả`,export_session_html_tooltip:()=>`Xuất dưới dạng trang HTML độc lập`,export_session_json_tooltip:()=>`Xuất toàn bộ phiên dưới dạng JSON`,ext_configure:()=>`Cấu hình`,ext_configure_failed:()=>`Không thể cấu hình tiện ích mở rộng.`,ext_configure_opening:()=>`Đang mở…`,ext_gallery_after_install:()=>`Sau khi cài đặt`,ext_gallery_install_followup:()=>`Đã cài đặt tiện ích mở rộng. Xem thẻ để biết các bước tiếp theo.`,ext_gallery_install_restart_required:()=>`Đã cài đặt tiện ích mở rộng. Cần khởi động lại để áp dụng.`,ext_gallery_local_app_label:()=>`Ứng dụng cục bộ`,ext_gallery_local_component_required:()=>`Tiện ích mở rộng này có thành phần cục bộ. Sau khi cài đặt, hãy khởi động ứng dụng cục bộ hoặc sidecar bắt buộc.`,ext_gallery_native_host_required:()=>`Cần native host`,ext_gallery_next_step:()=>`Bước tiếp theo`,ext_gallery_open_setup_guide:()=>`Mở hướng dẫn thiết lập`,ext_gallery_permissions_empty:()=>`Không khai báo quyền bổ sung nào.`,ext_gallery_required_suffix:e=>`Cần ${e?.a0}`,ext_gallery_sidecar_required:()=>`Cần sidecar`,external_link_grant_expired:()=>`Chế độ xem bên ngoài này đã hết hạn. Hãy mở lại symlink trỏ ra ngoài để cấp quyền lại.`,external_link_open_confirm:()=>`Symlink này trỏ ra ngoài workspace và không thể mở từ đây.`,external_link_read_only:()=>`Chế độ xem bên ngoài này chỉ đọc. Các thao tác tạo, đổi tên, di chuyển, xóa, tải lên, hiển thị và chỉnh sửa vẫn bị tắt tại đây.`,external_notes_auto:()=>`tự động`,external_notes_auto_recall_hint:()=>`Tự động gọi lại phiên không thay đổi; ngăn này chỉ hiển thị các nguồn đã cấu hình và công cụ đọc/tìm kiếm khả dụng.`,external_notes_configured_hint:()=>`Tên công cụ được mong đợi từ nguồn đã cấu hình này; schema trực tiếp sẽ xuất hiện khi runtime WebUI hiển thị chúng.`,external_notes_empty:()=>`Chưa có nguồn MCP ghi chú hoặc tri thức nào hiển thị. Hãy cấu hình Joplin, Obsidian, Notion, llm-wiki hoặc server ghi chú khác để liệt kê tại đây.`,external_notes_no_tools:()=>`Hiện không có công cụ đọc/tìm kiếm nào hiển thị cho nguồn này.`,external_notes_recent_ai:()=>`AI dùng gần đây`,external_notes_recent_ai_reason:()=>`Tự động gọi lại`,external_notes_search_empty:()=>`Tìm kiếm một nguồn ghi chú đã cấu hình để xem trước ghi chú tại đây.`,external_notes_search_placeholder:()=>`Tìm ghi chú…`,external_notes_sources:()=>`Nguồn ghi chú bên thứ ba`,external_notes_tool_count:t=>(e(`vi`,t?.count,{}),`${t?.count} công cụ ghi chú khả dụng`),failed_colon:()=>`Thất bại: `,file_open_failed:()=>`Không thể mở file`,filter_conversations:()=>`Lọc cuộc trò chuyện...`,first_token_time:()=>`Thời gian tới token đầu tiên`,focus_label:()=>`Tiêu điểm`,folder_add_as_space_btn:()=>`Thêm làm Space`,folder_add_as_space_msg:()=>`Thêm thư mục này làm space mới trong danh sách workspace?`,folder_add_as_space_title:()=>`Thêm làm Space?`,folder_create_failed:()=>`Tạo thư mục thất bại: `,folder_created:()=>`Đã tạo thư mục `,font_size_default:()=>`Mặc định`,font_size_large:()=>`Lớn`,font_size_small:()=>`Nhỏ`,font_size_xlarge:()=>`Rất lớn`,fork_from_here:()=>`Fork từ đây`,forked_from:()=>`Fork từ`,gateway_auth_label:()=>`Xác thực gateway thất bại`,gateway_endpoint_unreachable:()=>`Không thể truy cập endpoint gateway`,gateway_last_active:()=>`Hoạt động lần cuối: `,gateway_load_failed:()=>`Tải trạng thái gateway thất bại`,gateway_metadata_stale:()=>`Metadata gateway đã cũ`,gateway_not_configured:()=>`Gateway chưa được cấu hình`,gateway_not_running:()=>`Gateway hiện chưa chạy`,gateway_restart:()=>`Khởi động lại`,gateway_restart_failed:()=>`Khởi động lại gateway thất bại`,gateway_restart_success:()=>`Đã khởi động lại gateway.`,gateway_running:()=>`Đang chạy`,gateway_running_label:()=>`Đang chạy`,gateway_session:()=>`phiên`,gateway_session_count:t=>(e(`vi`,t?.n,{}),`${t?.n} phiên`),gateway_sessions:()=>`phiên`,gateway_start:()=>`Bắt đầu`,gateway_start_failed:()=>`Khởi động gateway thất bại`,gateway_start_success:()=>`Đã khởi động gateway.`,gateway_status_load_failed:()=>`Không thể tải trạng thái gateway`,gateway_stop:()=>`Dừng`,gateway_stop_failed:()=>`Dừng gateway thất bại`,gateway_stop_success:()=>`Đã dừng gateway.`,goal_achieved:e=>`✓ Đã đạt mục tiêu: ${e?.reason}`,goal_cleared:()=>`Đã xóa mục tiêu.`,goal_continuing:e=>`↻ Đang tiếp tục mục tiêu (${e?.turns}/${e?.max_turns}): ${e?.reason}`,goal_continuing_toast:()=>`Đang tiếp tục mục tiêu…`,goal_evaluating_progress:()=>`Đang đánh giá tiến độ mục tiêu…`,goal_no_goal:()=>`Không có mục tiêu hoạt động.`,goal_paused:e=>`⏸ Đã tạm dừng mục tiêu: ${e?.goal}`,goal_paused_budget_exhausted:e=>`⏸ Đã tạm dừng mục tiêu — đã dùng ${e?.turns}/${e?.max_turns} lượt. Dùng /goal resume để tiếp tục hoặc /goal clear để dừng.`,goal_resumed:e=>`▶ Đã tiếp tục mục tiêu: ${e?.goal}`,goal_set:e=>`⊙ Đã đặt mục tiêu (${e?.turns} lượt): ${e?.goal}`,goal_status_active:e=>`⊙ Mục tiêu (đang hoạt động, ${e?.turns}/${e?.max_turns} lượt): ${e?.goal}`,goal_status_done:e=>`✓ Hoàn thành mục tiêu (${e?.turns}/${e?.max_turns}): ${e?.goal}`,goal_status_none:()=>`Không có mục tiêu nào đang hoạt động. Đặt bằng /goal <text>.`,goal_status_paused:e=>`⏸ Mục tiêu (tạm dừng, ${e?.turns}/${e?.max_turns}${e?.reason_suffix}): ${e?.goal}`,goal_working_toward:()=>`Đang thực hiện mục tiêu…`,html_error:()=>`Không thể hiển thị xem trước HTML`,html_loading:()=>`Đang tải xem trước HTML…`,html_open_full:()=>`Mở toàn bộ trang`,html_sandbox_label:()=>`Xem trước HTML (chế độ cách ly)`,html_too_large:()=>`HTML quá lớn để xem trực tiếp`,image_load_failed:()=>`Không thể tải ảnh`,image_pasted:()=>`Đã dán ảnh: `,import_failed:()=>`Nhập thất bại: `,import_invalid_json:()=>`JSON không hợp lệ`,import_session_json_tooltip:()=>`Nhập phiên từ JSON`,insights_activity_by_day:()=>`Hoạt động theo ngày`,insights_activity_by_hour:()=>`Hoạt động theo giờ`,insights_cache_hit:()=>`Tỷ lệ trúng bộ nhớ đệm prompt`,insights_cost:()=>`Chi phí ước tính`,insights_daily_tokens:()=>`Token hàng ngày`,insights_footer:e=>`Hiển thị dữ liệu trong ${e?.days} ngày gần nhất`,insights_input_tokens:()=>`Đầu vào`,insights_messages:()=>`Tin nhắn`,insights_model_cost:()=>`Chi phí`,insights_model_health_cost_per_m:()=>`Chi phí / 1M`,insights_model_health_provider:()=>`Nhà cung cấp`,insights_model_health_replacement:()=>`Gợi ý thay thế`,insights_model_health_title:()=>`So sánh sức khỏe model`,insights_model_sessions:()=>`Phiên`,insights_model_share:()=>`Tỷ lệ`,insights_model_tokens:()=>`Token`,insights_models:()=>`Model`,insights_no_cost:()=>`Không có`,insights_no_usage_data:()=>`Chưa có dữ liệu sử dụng`,insights_output_tokens:()=>`Đầu ra`,insights_peak_hour:e=>`Cao điểm: ${e?.hour}`,insights_sessions:()=>`Phiên`,insights_skill_usage_col_patches:()=>`Patch`,insights_skill_usage_col_share:()=>`Tỷ lệ sử dụng %`,insights_skill_usage_col_skill:()=>`Kỹ năng`,insights_skill_usage_col_uses:()=>`Lần dùng`,insights_skill_usage_col_views:()=>`Lượt xem`,insights_skill_usage_footer:()=>`Số lượng từ ~/.hermes/skills/`,insights_skill_usage_no_data:()=>`Chưa có dữ liệu sử dụng kỹ năng`,insights_skill_usage_no_data_hint:()=>`Kỹ năng sẽ xuất hiện ở đây sau khi được dùng trong cuộc trò chuyện.`,insights_skill_usage_skills_used:()=>`Kỹ năng đã dùng`,insights_skill_usage_sub:()=>`Tần suất gọi công cụ`,insights_skill_usage_title:()=>`Sử dụng kỹ năng`,insights_skill_usage_total:()=>`Tổng số lần gọi`,insights_title:()=>`Phân tích sử dụng`,insights_token_breakdown:()=>`Phân tích token`,insights_tokens:()=>`Token`,insights_total:()=>`Tổng`,jump_to_question:()=>`tới phản hồi`,jump_to_question_label:()=>`Nhảy tới đầu phản hồi này`,kanban_add_comment:()=>`Thêm bình luận`,kanban_add_dependency:()=>`Thêm phụ thuộc`,kanban_all_assignees:()=>`Tất cả assignee`,kanban_all_tenants:()=>`Tất cả tenant`,kanban_archive_board:()=>`Lưu trữ bảng hiện tại…`,kanban_archive_board_confirm:e=>`Lưu trữ bảng "${e?.name}"? Các tác vụ vẫn còn trên đĩa và bảng có thể được khôi phục từ kanban/boards/_archived/.`,kanban_assignee:()=>`Người phụ trách`,kanban_assignee_other_label:()=>`Khác (CLI lanes / profile đã xóa)`,kanban_assignee_placeholder:()=>`Tùy chọn — để trống cho bất kỳ worker nào`,kanban_assignee_profiles_label:()=>`Hồ sơ Hermes`,kanban_assignee_unassigned:()=>`— Chưa gán (sẽ không tự chạy) —`,kanban_back_to_board:()=>`Quay lại bảng`,kanban_block:()=>`Chặn`,kanban_board:()=>`Bảng`,kanban_board_archived:()=>`Đã lưu trữ bảng`,kanban_board_color:()=>`Màu sắc (tùy chọn)`,kanban_board_default_workdir:()=>`Đường dẫn workspace mặc định`,kanban_board_default_workdir_placeholder:()=>`Đường dẫn workspace (tùy chọn)`,kanban_board_description:()=>`Mô tả (tùy chọn)`,kanban_board_icon:()=>`Biểu tượng (emoji, tùy chọn)`,kanban_board_name:()=>`Tên`,kanban_board_name_required:()=>`Tên là bắt buộc`,kanban_board_settings:()=>`Cài đặt bảng`,kanban_board_slug:()=>`Slug (chữ thường, dấu gạch nối)`,kanban_board_slug_required:()=>`Slug là bắt buộc`,kanban_bulk_action:()=>`Thao tác hàng loạt`,kanban_card_archive:()=>`lưu trữ`,kanban_card_complete:()=>`hoàn tất`,kanban_children:()=>`Con`,kanban_comments_count:e=>`Bình luận (${e?.a0})`,kanban_dependency_placeholder:()=>`ID tác vụ cần liên kết`,kanban_dependency_self:()=>`Một tác vụ không thể phụ thuộc vào chính nó`,kanban_description:()=>`Mô tả`,kanban_description_placeholder:()=>`Tùy chọn — điều gì cần thực hiện, tiêu chí chấp nhận, liên kết`,kanban_dispatch_auto_blocked:()=>`tự động chặn`,kanban_dispatch_crashed:()=>`bị crash`,kanban_dispatch_preview_prefix:()=>`Xem trước:`,kanban_dispatch_promoted:()=>`đã nâng cấp`,kanban_dispatch_reclaimed:()=>`đã nhận lại`,kanban_dispatch_run_prefix:()=>`Đã dispatch:`,kanban_dispatch_skipped_nonspawnable:()=>`đã bỏ qua (profile không xác định)`,kanban_dispatch_skipped_unassigned:()=>`đã bỏ qua (chưa gán)`,kanban_dispatch_spawned:()=>`đã tạo`,kanban_dispatch_timed_out:()=>`hết thời gian`,kanban_edit_task:()=>`Chỉnh sửa tác vụ`,kanban_empty:()=>`Trống`,kanban_events_count:e=>`Sự kiện (${e?.a0})`,kanban_include_archived:()=>`Bao gồm mục đã lưu trữ`,kanban_lanes_by_profile:()=>`Cột theo hồ sơ`,kanban_links:()=>`Liên kết`,kanban_new_board:()=>`Bảng mới…`,kanban_new_task:()=>`Tác vụ mới`,kanban_no_comments:()=>`Không có bình luận`,kanban_no_data:()=>`Không có dữ liệu Kanban`,kanban_no_description:()=>`Không có mô tả`,kanban_no_events:()=>`Không có sự kiện`,kanban_no_matching_tasks:()=>`Không có tác vụ phù hợp`,kanban_no_runs:()=>`Không có lần chạy`,kanban_nudge_dispatcher:()=>`Xem trước bộ điều phối`,kanban_only_mine:()=>`Chỉ của tôi`,kanban_parents:()=>`Cha`,kanban_priority:()=>`Độ ưu tiên`,kanban_priority_hint:()=>`Số cao hơn sẽ chạy trước. Mặc định là 0.`,kanban_read_only:()=>`Chế độ chỉ đọc`,kanban_ready_needs_assignee:()=>`Bạn đã chọn Unassigned + Ready. Dispatcher sẽ bỏ qua tác vụ này. Gửi lại để xác nhận hoặc chọn một profile.`,kanban_refresh:()=>`Làm mới`,kanban_remove_dependency:()=>`Xóa phụ thuộc`,kanban_rename_board:()=>`Cài đặt bảng…`,kanban_run_dispatcher:()=>`Chạy bộ điều phối`,kanban_run_dispatcher_confirm:()=>`Thao tác này sẽ nhận các tác vụ Ready trên bảng này và tạo subprocess worker (mỗi tác vụ một worker, tối đa 8 mỗi lần bấm). Tiếp tục?`,kanban_runs_count:e=>`Lần chạy (${e?.a0})`,kanban_search_tasks:()=>`Tìm kiếm tác vụ`,kanban_stats:()=>`Thống kê`,kanban_status:()=>`Trạng thái`,kanban_status_archived:()=>`Đã lưu trữ`,kanban_status_blocked:()=>`Bị chặn`,kanban_status_done:()=>`Hoàn tất`,kanban_status_original_hint:e=>`Trạng thái thực tế: ${e?.a0}. Hộp thoại này chỉ hỗ trợ chỉnh sửa Triage/Todo/Ready.`,kanban_status_ready:()=>`Sẵn sàng`,kanban_status_running:()=>`Đang chạy`,kanban_status_triage:()=>`Phân loại`,kanban_task:()=>`Tác vụ`,kanban_tenant_placeholder:()=>`Tùy chọn — slug project hoặc team`,kanban_title:()=>`Tiêu đề`,kanban_title_required:()=>`Tiêu đề là bắt buộc.`,kanban_unassigned:()=>`chưa gán`,kanban_unavailable:()=>`Kanban không khả dụng`,kanban_unblock:()=>`Bỏ chặn`,kanban_view_consolidated:()=>`Chế độ xem tổng hợp`,kanban_view_consolidated_saved:()=>`Chế độ Kanban: tổng hợp`,kanban_view_lanes:()=>`Lane theo hồ sơ`,kanban_view_lanes_saved:()=>`Chế độ Kanban: lane theo hồ sơ`,kanban_view_update_failed:()=>`Cập nhật chế độ Kanban thất bại: `,kanban_visible_tasks:e=>`${e?.a0} tác vụ hiển thị`,kanban_work_queue_hint:()=>`Đây là hàng đợi công việc của Hermes Agent. Tạo hoặc phân loại tác vụ, gán người xử lý, chuyển sang Ready rồi để dispatcher nhận.`,kanban_worker_log:()=>`Log worker`,kanban_workspace_dir:()=>`Thư mục`,kanban_workspace_kind:()=>`Loại workspace`,kanban_workspace_path:()=>`Đường dẫn workspace`,kanban_workspace_path_placeholder:()=>`Đường dẫn tới workspace`,kanban_workspace_path_required:()=>`Workspace không phải tạm thời cần có đường dẫn.`,kanban_workspace_scratch:()=>`Tạm thời`,linked_files:()=>`File liên kết`,live_background:()=>`Đang xử lý kết quả nền`,load_older_messages:()=>`↑ Cuộn lên hoặc bấm để tải tin nhắn cũ hơn`,loading:()=>`Đang tải...`,login_btn:()=>`Đăng nhập`,login_conn_failed:()=>`Kết nối thất bại`,login_invalid_pw:()=>`Mật khẩu không hợp lệ`,login_placeholder:()=>`Mật khẩu`,login_subtitle:()=>`Nhập mật khẩu để tiếp tục`,login_title:()=>`Đăng nhập`,logs_auto_refresh:()=>`Tự động làm mới (5s)`,logs_copied:()=>`Đã sao chép log`,logs_copy_all:()=>`Sao chép tất cả`,logs_empty:()=>`Chưa có dòng log nào.`,logs_filter_active:()=>`đang hiển thị (bộ lọc đang hoạt động)`,logs_load_failed:()=>`Tải log thất bại`,logs_loading:()=>`Đang tải log…`,logs_no_mtime:()=>`chưa được ghi`,logs_severity:()=>`Mức độ`,logs_severity_all:()=>`Tất cả`,logs_severity_errors:()=>`Lỗi`,logs_severity_warnings:()=>`Cảnh báo+`,logs_status_idle:()=>`Chọn file log để xem các dòng gần đây.`,logs_truncated_hint:()=>`Đang hiển thị phần cuối của file log lớn; các byte cũ hơn đã bị bỏ qua để giới hạn bộ nhớ.`,logs_wrap:()=>`Xuống dòng`,manage_profiles:()=>`Quản lý profile`,markdown_table_filter:()=>`Lọc bảng`,markdown_table_sort_column:()=>`Sắp xếp cột`,marker_context_compaction:()=>`Nén ngữ cảnh`,marker_preserved_task_list:()=>`Danh sách nhiệm vụ đã giữ lại`,mcp_add_server:()=>`+ Thêm máy chủ`,mcp_cancel:()=>`Hủy`,mcp_command_required:()=>`Lệnh là bắt buộc cho transport stdio.`,mcp_delete_confirm_message:e=>`Xóa máy chủ MCP "${e?.a0}"? Hành động này không thể hoàn tác.`,mcp_delete_confirm_title:()=>`Xóa máy chủ MCP`,mcp_delete_failed:()=>`Xóa máy chủ MCP thất bại.`,mcp_deleted:()=>`Đã xóa máy chủ MCP.`,mcp_disable_server:()=>`Tắt máy chủ MCP này`,mcp_disabled_toast:e=>`Đã tắt máy chủ MCP "${e?.name}".`,mcp_enable_server:()=>`Bật máy chủ MCP này`,mcp_enabled_no:()=>`Đã tắt`,mcp_enabled_toast:e=>`Đã bật máy chủ MCP "${e?.name}".`,mcp_enabled_yes:()=>`Đã bật`,mcp_field_args:()=>`Tham số (phân tách bằng dấu phẩy)`,mcp_field_command:()=>`Lệnh`,mcp_field_name:()=>`Tên máy chủ`,mcp_field_timeout:()=>`Thời gian chờ (giây)`,mcp_health_needs_auth:()=>`Cần đăng nhập lại`,mcp_health_unhealthy:()=>`Không kết nối được`,mcp_load_failed:()=>`Tải danh sách máy chủ MCP thất bại.`,mcp_name_required:()=>`Tên máy chủ là bắt buộc.`,mcp_no_servers:()=>`Chưa có máy chủ MCP nào được cấu hình.`,mcp_restart_hint:()=>`Hiện tại các thay đổi máy chủ chỉ ở chế độ chỉ đọc tại đây. Hãy sửa config.yaml và khởi động lại Hermes để áp dụng thay đổi.`,mcp_save:()=>`Lưu`,mcp_save_failed:()=>`Lưu máy chủ MCP thất bại.`,mcp_saved:()=>`Đã lưu máy chủ MCP.`,mcp_servers_desc:()=>`Xem các máy chủ MCP được cấu hình trong config.yaml.`,mcp_servers_title:()=>`Máy chủ MCP`,mcp_status_active:()=>`Đang hoạt động`,mcp_status_configured:()=>`Đã cấu hình`,mcp_status_disabled:()=>`Đã tắt`,mcp_status_invalid_config:()=>`Cấu hình không hợp lệ`,mcp_status_unknown:()=>`Không xác định`,mcp_toggle_failed:()=>`Cập nhật máy chủ MCP thất bại.`,mcp_toggle_followup:()=>`Các điều khiển bật/tắt tạm thời chưa được hỗ trợ cho đến khi cơ chế reload MCP được xác định rõ.`,mcp_tool_count:e=>`${e?.a0} công cụ`,mcp_tools_desc:()=>`Tìm kiếm các công cụ đã biết trên các máy chủ MCP đang hoạt động.`,mcp_tools_inactive_configured_servers:e=>`Đã cấu hình nhưng không hoạt động trong runtime WebUI này: ${e?.servers}.`,mcp_tools_load_failed:()=>`Tải công cụ MCP thất bại.`,mcp_tools_next_page:()=>`Tiếp ›`,mcp_tools_next_page_aria:()=>`Trang công cụ MCP tiếp theo`,mcp_tools_no_matches:()=>`Không có công cụ MCP nào khớp với tìm kiếm.`,mcp_tools_no_tools:()=>`Không có công cụ MCP nào khả dụng từ runtime hiện tại.`,mcp_tools_page_size_prefix:()=>`Hiển thị`,mcp_tools_page_size_suffix:()=>`mỗi trang`,mcp_tools_pagination_label:()=>`Phân trang công cụ MCP`,mcp_tools_per_page_aria:()=>`Số công cụ MCP mỗi trang`,mcp_tools_previous_page:()=>`‹ Trước`,mcp_tools_previous_page_aria:()=>`Trang công cụ MCP trước`,mcp_tools_runtime_note:()=>`Danh sách công cụ chỉ sử dụng dữ liệu runtime MCP đang hoạt động đã biết; WebUI sẽ không tự khởi động hoặc kiểm tra máy chủ.`,mcp_tools_schema_empty:()=>`Không có tham số schema.`,mcp_tools_search_placeholder:()=>`Tìm công cụ theo tên, máy chủ hoặc mô tả…`,mcp_tools_summary_matching:e=>` khớp với “${e?.query}”`,mcp_tools_summary_no_matches:e=>`Không có công cụ MCP nào khớp với “${e?.query}” (${e?.total} công cụ MCP tổng cộng).`,mcp_tools_summary_none:()=>`Không có công cụ MCP để hiển thị.`,mcp_tools_summary_showing:e=>`Hiển thị ${e?.start}-${e?.end} trên ${e?.filtered} công cụ MCP${e?.searchNote}${e?.totalNote}. Trang ${e?.page}/${e?.pages}.`,mcp_tools_summary_total_note:e=>` (${e?.total} công cụ MCP tổng cộng)`,mcp_tools_title:()=>`Công cụ MCP`,mcp_transport_label:()=>`Loại kết nối`,mcp_url_required:()=>`URL là bắt buộc cho transport HTTP.`,media_audio_label:()=>`Âm thanh`,media_download:()=>`Tải xuống`,media_svg_label:()=>`Sơ đồ`,memory_notes_label:()=>`bộ nhớ (ghi chú)`,memory_saved:()=>`Đã lưu bộ nhớ`,mic_denied:()=>`Quyền truy cập microphone bị từ chối. Kiểm tra quyền trình duyệt.`,mic_error:()=>`Lỗi nhập giọng nói: `,mic_insecure_origin:()=>`Nhập giọng nói cần kết nối bảo mật. Hãy mở Hermes qua HTTPS hoặc từ localhost để dùng microphone.`,mic_network:()=>`Nhận diện giọng nói không khả dụng.`,mic_no_speech:()=>`Không phát hiện giọng nói. Hãy thử lại.`,model_badge_selected:()=>`Đã chọn`,model_custom_label:()=>`ID model tự nhập`,model_custom_placeholder:()=>`ví dụ: openai/gpt-5.4`,model_did_you_mean:e=>` — có phải bạn muốn "${e?.m}"?`,model_group_configured:()=>`Đã cấu hình`,model_not_found_label:()=>`Không tìm thấy model`,model_scope_advisory:()=>`Áp dụng cho cuộc trò chuyện này từ tin nhắn tiếp theo.`,model_scope_toast:()=>`Áp dụng cho cuộc trò chuyện này từ tin nhắn tiếp theo.`,model_search_no_results:()=>`Không tìm thấy model nào`,model_search_placeholder:()=>`Tìm model…`,model_show_all_models:e=>`Hiển thị tất cả ${e?.a0} model`,model_unavailable:()=>` (không khả dụng)`,model_unavailable_title:()=>`Model này không còn trong danh sách provider hiện tại của bạn`,model_usage:()=>`Cách dùng: /model <tên>`,more_actions:()=>`Thao tác khác`,move_failed:()=>`Chuyển thất bại: `,moved_to:()=>`Đã chuyển tới `,my_notes:()=>`Ghi chú của tôi`,n_messages:t=>(e(`vi`,t?.n,{}),`${t?.n} tin nhắn`),name_required:()=>`Tên là bắt buộc`,never:()=>`không bao giờ`,new_conversation:()=>`Cuộc trò chuyện mới`,new_file:()=>`File mới`,new_file_prompt:()=>`Tên file mới (ví dụ: notes.md):`,new_file_prompt_title:e=>`Tên tệp mới trong ${e?.a0}:`,new_folder:()=>`Thư mục mới`,new_folder_prompt:()=>`Tên thư mục mới:`,new_folder_prompt_title:e=>`Tên thư mục mới trong ${e?.a0}:`,new_job:()=>`Tác vụ mới`,new_profile:()=>`Profile mới`,new_session:()=>`Đã tạo phiên mới`,new_session_creating:()=>`Đang tạo cuộc trò chuyện mới…`,new_session_workspace_announce:e=>`Đã bắt đầu cuộc trò chuyện mới trong workspace: ${e?.a0}.`,new_skill:()=>`Kỹ năng mới`,no_active_session:()=>`Không có phiên hoạt động`,no_active_task:()=>`Không có tác vụ hoạt động để dừng.`,no_model_match:()=>`Không có model nào khớp "`,no_notes_yet:()=>`Chưa có ghi chú.`,no_personalities:()=>`Không tìm thấy personality nào (thêm vào config.yaml → agent.personalities)`,no_profile_yet:()=>`Chưa có profile.`,no_soul_yet:()=>`Chưa định nghĩa soul.`,no_workspace:()=>`Không có không gian làm việc`,no_workspace_match:()=>`Không có workspace nào khớp "`,not_available:()=>`Không có`,notifications_denied:()=>`Thông báo đang bị chặn trong trình duyệt này. Hãy bật trong cài đặt trình duyệt.`,notifications_enable_btn:()=>`Bật thông báo`,notifications_enabled_toast:()=>`Đã bật thông báo.`,notifications_permission_status:e=>`Quyền: ${e?.status}`,notifications_test_btn:()=>`Gửi thử`,notifications_unsupported:()=>`Trình duyệt này không hỗ trợ thông báo.`,oauth_codex_error:()=>`Đăng nhập OAuth thất bại`,oauth_codex_expired:()=>`Mã đã hết hạn, vui lòng thử lại`,oauth_codex_polling:()=>`Đang chờ xác thực...`,oauth_codex_step1:()=>`Bước 1: Truy cập URL này và nhập mã`,oauth_codex_step2:()=>`Bước 2: Nhập mã này trên trang`,oauth_codex_success:()=>`Đăng nhập OAuth Codex thành công!`,oauth_login_codex:()=>`Đăng nhập bằng Codex (ChatGPT)`,offline_autorefresh:()=>`Trang sẽ tự động làm mới khi Hermes khả dụng trở lại.`,offline_browser_detail:()=>`Trình duyệt báo rằng thiết bị này đang ngoại tuyến.`,offline_check_now:()=>`Kiểm tra ngay`,offline_checking:()=>`Đang kiểm tra…`,offline_network_detail:()=>`Không thể kết nối tới Hermes từ trình duyệt lúc này.`,offline_stream_waiting:()=>`Mất kết nối. Đang chờ làm mới…`,offline_title:()=>`Mất kết nối`,onboarding_api_key_help_keyless:()=>`Hầu hết cài đặt LM Studio / Ollama / vLLM chạy không cần key — hãy để trống nếu server của bạn không yêu cầu xác thực. Dùng nút Test connection để xác minh.`,onboarding_api_key_help_prefix:()=>`Được lưu dưới dạng secret trong file .env của Hermes bằng`,onboarding_api_key_label_optional:()=>`API key (tùy chọn)`,onboarding_api_key_placeholder:()=>`Để trống để giữ key đã lưu hiện có`,onboarding_api_key_placeholder_optional:()=>`Để trống cho server không cần key`,onboarding_back:()=>`Quay lại`,onboarding_badge:()=>`LẦN CHẠY ĐẦU`,onboarding_base_url_help:()=>`Dùng cho router tương thích OpenAI, server self-hosted, LiteLLM, Ollama, LM Studio, vLLM hoặc endpoint tương tự.`,onboarding_check_agent_missing:()=>`Thiếu hoặc chỉ import được một phần`,onboarding_check_agent_ready:()=>`Đã phát hiện và có thể import`,onboarding_check_password:()=>`Mật khẩu`,onboarding_check_password_disabled:()=>`Chưa bật`,onboarding_check_password_enabled:()=>`Đã bật`,onboarding_check_provider:()=>`Cấu hình nhà cung cấp`,onboarding_check_provider_partial:()=>`Đã lưu nhưng chưa hoàn chỉnh`,onboarding_check_provider_pending:()=>`Cần xác minh`,onboarding_check_provider_ready:()=>`Sẵn sàng chat`,onboarding_complete:()=>`Hoàn tất thiết lập ban đầu`,onboarding_config_file:()=>`File config:`,onboarding_continue:()=>`Tiếp tục`,onboarding_current_provider:()=>`Thiết lập hiện tại:`,onboarding_custom_model_help:()=>`Với endpoint tùy chỉnh, nhập đúng model ID mà server yêu cầu.`,onboarding_custom_model_placeholder:()=>`ten-model-cua-ban`,onboarding_error_base_url_required:()=>`Base URL là bắt buộc cho endpoint tùy chỉnh.`,onboarding_error_choose_model:()=>`Chọn model trước khi tiếp tục.`,onboarding_error_choose_workspace:()=>`Chọn workspace trước khi tiếp tục.`,onboarding_error_model_required:()=>`Model là bắt buộc.`,onboarding_error_probe_failed:()=>`Không thể xác minh Base URL đã cấu hình.`,onboarding_error_provider_required:()=>`Chọn chế độ thiết lập trước khi tiếp tục.`,onboarding_error_workspace_required:()=>`Workspace là bắt buộc.`,onboarding_finish_help:()=>`Hoàn tất sẽ lưu <code>onboarding_completed</code> vào settings và đưa bạn vào ứng dụng bình thường.`,onboarding_lead:()=>`Thiết lập nhanh có hướng dẫn sẽ kiểm tra Hermes, lưu cấu hình provider thực, chọn workspace và model, đồng thời có thể bảo vệ ứng dụng bằng mật khẩu.`,onboarding_missing_imports:()=>`Thiếu các import sau:`,onboarding_model_label:()=>`Model mặc định`,onboarding_not_set:()=>`Chưa đặt`,onboarding_notice_custom_base_url_required:()=>`Hermes đã lưu lựa chọn provider/model, nhưng provider tùy chỉnh vẫn cần Base URL. Hãy thêm cả API key nếu máy chủ đó yêu cầu.`,onboarding_notice_finish:()=>`Bạn có thể mở lại Settings sau để thay đổi bất kỳ mục nào.`,onboarding_notice_password_enabled:()=>`Mật khẩu đã được cấu hình. Chỉ nhập mật khẩu mới nếu bạn muốn thay thế.`,onboarding_notice_password_recommended:()=>`Tùy chọn nhưng được khuyến nghị nếu bạn sẽ mở UI ngoài localhost.`,onboarding_notice_provider_api_key_required:()=>`Hermes đã lưu lựa chọn provider/model, nhưng vẫn cần API key để chat.`,onboarding_notice_provider_auth_required:e=>`Provider "${e?.a0}" đã được cấu hình nhưng chưa xác thực. Chạy "hermes auth" hoặc "hermes model" trong terminal để hoàn tất thiết lập, rồi tải lại Web UI.`,onboarding_notice_provider_choice_required:()=>`Hermes đã được cài đặt, nhưng bạn vẫn cần chọn provider và lưu thông tin xác thực hoạt động được.`,onboarding_notice_setup_already_ready:()=>`Đã phát hiện cấu hình provider Hermes đang hoạt động. Bạn có thể giữ nguyên hoặc thay thế tại đây.`,onboarding_notice_setup_required:()=>`Hãy chọn cách thiết lập provider đơn giản tại đây. Các luồng OAuth nâng cao hiện vẫn nên thực hiện trong Hermes CLI.`,onboarding_notice_system_ready:()=>`Hermes Agent có vẻ truy cập được từ Web UI.`,onboarding_notice_system_unavailable:()=>`Hermes Agent chưa hoàn toàn khả dụng. Bootstrap có thể cài đặt nhưng thiết lập provider vẫn có thể cần terminal.`,onboarding_notice_workspace:()=>`Các giá trị này dùng lại cùng API cài đặt như ứng dụng bình thường.`,onboarding_oauth_provider_not_ready_body:e=>`Instance này được cấu hình dùng <strong>${e?.provider}</strong>, sử dụng OAuth thay vì API key. Hãy chạy <code>hermes auth</code> hoặc <code>hermes model</code> trong terminal để xác thực rồi tải lại Web UI.`,onboarding_oauth_provider_not_ready_title:()=>`Provider OAuth chưa được xác thực`,onboarding_oauth_provider_ready_body:e=>`Instance này được cấu hình dùng provider OAuth (<strong>${e?.provider}</strong>) đã được thiết lập qua Hermes CLI. Không cần API key tại đây — nhấn Tiếp tục để hoàn tất thiết lập.`,onboarding_oauth_provider_ready_title:()=>`Provider đã xác thực`,onboarding_oauth_switch_hint:()=>`Hoặc chọn provider khác bên dưới để chuyển sang thiết lập bằng API key:`,onboarding_open:()=>`Mở Hermes`,onboarding_password_help:()=>`Mật khẩu được lưu qua API settings hiện có và hash ở phía server.`,onboarding_password_keep_existing:()=>`Giữ mật khẩu hiện tại`,onboarding_password_label:()=>`Mật khẩu (tùy chọn)`,onboarding_password_placeholder:()=>`Để trống để bỏ qua`,onboarding_password_remains_disabled:()=>`Sẽ vẫn tắt`,onboarding_password_skipped:()=>`Tạm bỏ qua`,onboarding_password_will_enable:()=>`Sẽ được bật`,onboarding_password_will_replace:()=>`Sẽ được thay thế`,onboarding_probe_error_connect_refused:()=>`Kết nối bị từ chối — server có thể chưa chạy trên địa chỉ đó. Nếu chạy trong Docker, hãy thử IP host thay vì localhost.`,onboarding_probe_error_dns:()=>`Không thể phân giải hostname. Kiểm tra URL hoặc dùng địa chỉ IP của host.`,onboarding_probe_error_generic:()=>`Không thể truy cập Base URL đã cấu hình.`,onboarding_probe_error_http_4xx:()=>`Endpoint trả về lỗi client. Kiểm tra xác thực và đường dẫn URL (thường kết thúc bằng /v1).`,onboarding_probe_error_http_5xx:()=>`Endpoint trả về lỗi server. Kiểm tra log LM Studio / Ollama.`,onboarding_probe_error_invalid_url:()=>`Base URL phải bắt đầu bằng http:// hoặc https://.`,onboarding_probe_error_parse:()=>`Endpoint không trả về danh sách model đúng định dạng mong đợi. Kiểm tra URL có trỏ đúng tới API root tương thích OpenAI.`,onboarding_probe_error_timeout:()=>`Endpoint không phản hồi kịp thời. Kiểm tra server đang chạy và URL chính xác.`,onboarding_probe_error_unreachable:()=>`Không thể truy cập Base URL đã cấu hình.`,onboarding_probe_ok:e=>`Đã kết nối. Có ${e?.n} model khả dụng.`,onboarding_probe_probing:()=>`Đang kiểm tra kết nối…`,onboarding_probe_test_button:()=>`Kiểm tra kết nối`,onboarding_provider_label:()=>`Chế độ thiết lập`,onboarding_quick_setup_badge:()=>`thiết lập nhanh`,onboarding_skip:()=>`Bỏ qua thiết lập`,onboarding_skipped:()=>`Đã bỏ qua thiết lập — dùng cấu hình hiện có.`,onboarding_step_finish_desc:()=>`Xem lại và vào ứng dụng.`,onboarding_step_finish_title:()=>`Hoàn tất`,onboarding_step_password_desc:()=>`Bảo vệ Web UI trước khi chia sẻ.`,onboarding_step_password_title:()=>`Mật khẩu tùy chọn`,onboarding_step_setup_desc:()=>`Lưu cấu hình provider tối thiểu cho Hermes.`,onboarding_step_setup_title:()=>`Thiết lập nhà cung cấp`,onboarding_step_system_desc:()=>`Xác minh Hermes Agent và khả năng truy cập config.`,onboarding_step_system_title:()=>`Kiểm tra hệ thống`,onboarding_step_workspace_desc:()=>`Chọn mặc định cho phiên mới và chat.`,onboarding_step_workspace_title:()=>`Không gian làm việc + model`,onboarding_title:()=>`Chào mừng đến với Talaria Web`,onboarding_unknown:()=>`Không xác định`,onboarding_workspace_help:()=>`Chọn model Hermes sẽ dùng cho các chat mới sau khi hoàn tất thiết lập.`,onboarding_workspace_or_path:()=>`Hoặc nhập đường dẫn workspace`,open_in_browser:()=>`Mở trong trình duyệt`,open_in_vscode:()=>`Mở bằng VS Code`,open_in_vscode_failed:()=>`Mở bằng VS Code thất bại: `,outline_empty:()=>`Chưa có câu hỏi nào.`,outline_loading:()=>`Đang tải…`,outline_minimap_label:()=>`Dòng thời gian cuộc trò chuyện`,outline_minimap_mark:e=>`Câu hỏi ${e?.a0}: ${e?.a1}`,outline_title:()=>`Dàn ý`,panel_agents:()=>`Tác tử`,panel_agents_empty:()=>`Chưa có tác tử nào chạy trong cuộc trò chuyện này.`,panel_agents_transcript:()=>`Mở bản ghi`,panel_agents_transcript_for:e=>`Bản ghi: ${e?.goal}`,panel_agents_unavailable:()=>`Tác tử hiện không báo được trạng thái.`,panel_agents_updated:e=>`Cập nhật ${e?.time}`,panel_files_unavailable:()=>`Cuộc trò chuyện này không có không gian làm việc.`,panel_label:()=>`Bảng bên`,parse_failed_note:()=>`phân tích thất bại`,password_env_var_locked:()=>`Biến môi trường HERMES_WEBUI_PASSWORD hiện đang được đặt và có ưu tiên cao hơn. Hãy unset biến này và khởi động lại server để quản lý mật khẩu tại đây.`,password_env_var_locked_placeholder:()=>`Đã khóa: biến môi trường HERMES_WEBUI_PASSWORD đang được đặt`,password_placeholder:()=>`Nhập mật khẩu mới…`,path_copied:()=>`Đã sao chép đường dẫn file vào clipboard`,path_copy_failed:()=>`Sao chép đường dẫn thất bại: `,pdf_download:()=>`Tải PDF`,pdf_error:()=>`Không thể hiển thị xem trước PDF`,pdf_loading:e=>`Đang tải PDF ${e?.a0}…`,pdf_no_pages:()=>`PDF không có trang nào`,pdf_too_large:()=>`PDF quá lớn để xem trực tiếp`,pdf_truncated:e=>`Đang hiển thị ${e?.a0} trên ${e?.a1} trang đầu — hãy tải xuống để xem toàn bộ tài liệu`,personal_memory:()=>`Bộ nhớ cá nhân`,personalities_load_failed:()=>`Tải personality thất bại`,personality_cleared:()=>`Đã xóa personality`,personality_switch_hint:()=>"\n\nDùng `/personality <name>` để chuyển hoặc `/personality none` để xóa.",plugins_active_provider:()=>`Đang hoạt động (provider)`,plugins_disabled:()=>`Đã tắt`,plugins_enable_toggle:()=>`Bật`,plugins_enabled:()=>`Đã bật`,plugins_load_failed:()=>`Tải plugin thất bại: `,plugins_no_description:()=>`Không có mô tả.`,plugins_no_hooks:()=>`Không có lifecycle hook nào được đăng ký`,plugins_provider_no_hooks:()=>`Plugin provider — không có hook hiển thị agent`,plugins_registered_hooks:()=>`Lifecycle hook đã đăng ký`,plugins_unnamed:()=>`Plugin chưa đặt tên`,preserved_task_list_label:()=>`Danh sách tác vụ được giữ lại`,primary_navigation:()=>`Điều hướng chính`,process_wakeup_label:()=>`Đánh thức nền`,process_wakeup_matched:()=>`Đã khớp mẫu theo dõi`,profile_active:()=>`ĐANG HOẠT ĐỘNG`,profile_api_key_placeholder:()=>`API key (tùy chọn)`,profile_api_keys_configured:()=>`Đã cấu hình API key`,profile_base_url_placeholder:()=>`Base URL (tùy chọn, ví dụ: http://localhost:11434)`,profile_base_url_rule:()=>`Base URL phải bắt đầu bằng http:// hoặc https://`,profile_clone_label:()=>`Nhân bản cấu hình từ profile đang hoạt động`,profile_created:e=>`Đã tạo profile: ${e?.name}`,profile_default_label:()=>`(mặc định)`,profile_delete_confirm_message:()=>`Toàn bộ phiên, cấu hình, kỹ năng và bộ nhớ của profile này sẽ bị xóa vĩnh viễn. Hành động này không thể hoàn tác.`,profile_delete_confirm_title:e=>`Xóa hồ sơ "${e?.name}"?`,profile_delete_title:()=>`Xóa profile này`,profile_deleted:e=>`Đã xóa profile: ${e?.name}`,profile_gateway_running:()=>`Gateway đang hoạt động`,profile_gateway_stopped:()=>`Gateway đã dừng`,profile_model_hint:()=>`Chọn từ các provider và model đã cấu hình cho profile mới này.`,profile_model_label:()=>`Model / nhà cung cấp`,profile_model_use_default:()=>`Dùng mặc định của profile đang hoạt động`,profile_name_label:()=>`Tên`,profile_name_placeholder:()=>`Tên profile (chữ thường, a-z 0-9 dấu gạch ngang)`,profile_name_rule:()=>`Chỉ chữ thường, số, dấu gạch ngang và gạch dưới`,profile_no_configuration:()=>`Không có cấu hình`,profile_skill_count:t=>(e(`vi`,t?.count,{}),`${t?.count} kỹ năng`),profile_switch_title:()=>`Chuyển sang hồ sơ này`,profile_switched:e=>`Đã chuyển sang profile: ${e?.name}`,profile_switched_new_conversation:e=>`Đã chuyển sang profile: ${e?.name} — đã bắt đầu cuộc trò chuyện mới`,profile_use:()=>`Sử dụng`,profiles_empty_sub:()=>`Chọn một profile agent từ sidebar để xem và chỉnh sửa cài đặt hoặc tạo profile mới.`,profiles_empty_title:()=>`Chọn một hồ sơ`,profiles_load_failed:()=>`Tải profile thất bại`,profiles_no_profiles:()=>`Không tìm thấy profile nào.`,project_name_prompt:()=>`Tên project:`,provider_category_easy_start:()=>`Khởi đầu dễ dàng`,provider_category_self_hosted:()=>`Mở / self-hosted`,provider_category_specialized:()=>`Chuyên biệt`,provider_cost_chart_title:e=>`Chi tiêu ${e?.n} ngày`,provider_cost_monthly_pace:e=>`Nhịp tháng: ${e?.amount}`,provider_cost_no_baseline:()=>`không có mốc`,provider_cost_not_enough_data:()=>`Chưa đủ dữ liệu. Biểu đồ sẽ hiển thị sau 2 bản ghi hằng ngày.`,provider_mismatch_label:()=>`Nhà cung cấp không khớp`,provider_mismatch_warning:e=>`"${e?.m}" có thể không hoạt động với provider đã cấu hình (${e?.p}). Vẫn gửi hoặc chạy \`hermes model\` trong terminal để chuyển đổi.`,provider_quota_account_limits_loaded:()=>`Đã tải giới hạn tài khoản.`,provider_quota_active_provider:()=>`Provider đang hoạt động`,provider_quota_budget_day:e=>`Ngân sách ${e?.percent} / ngày`,provider_quota_budget_hour:e=>`Ngân sách ${e?.percent} / giờ`,provider_quota_burn:e=>`Mức dùng ${e?.rate}`,provider_quota_credential_pool:()=>`Nhóm thông tin xác thực`,provider_quota_empty_early:e=>`Hết sớm ${e?.duration}`,provider_quota_forecast_unavailable:()=>`Không có dự báo`,provider_quota_last_checked:e=>`Kiểm tra lần cuối ${e?.a0}`,provider_quota_last_checked_after_refresh:()=>`Kiểm tra lần cuối sau khi làm mới`,provider_quota_lasts_through_reset:()=>`Đủ đến khi đặt lại`,provider_quota_metric_limit:()=>`Giới hạn`,provider_quota_metric_remaining:()=>`Còn lại`,provider_quota_metric_used:()=>`Đã dùng`,provider_quota_on_pace:()=>`Đúng nhịp`,provider_quota_over_pace:e=>`Vượt nhịp ${e?.percent}`,provider_quota_pace_unavailable:()=>`Không có nhịp`,provider_quota_pool_no_windows:()=>`Không có cửa sổ giới hạn tài khoản nào được báo cáo.`,provider_quota_pool_plans:e=>`Gói: ${e?.a0}`,provider_quota_pool_summary_available:e=>`${e?.a0}/${e?.a1} khả dụng`,provider_quota_pool_summary_checked:e=>`${e?.a0} đã kiểm tra`,provider_quota_pool_summary_exhausted:e=>`${e?.a0} đã hết`,provider_quota_pool_summary_failed:e=>`${e?.a0} thất bại`,provider_quota_refresh_failed:()=>`Làm mới usage provider thất bại`,provider_quota_refresh_succeeded:()=>`Đã làm mới usage provider`,provider_quota_refresh_title:()=>`Làm mới giới hạn sử dụng provider ngay bây giờ`,provider_quota_refresh_usage:()=>`Làm mới usage`,provider_quota_refreshing:()=>`Đang làm mới...`,provider_quota_remaining:e=>`Còn ${e?.percent}`,provider_quota_resets:e=>`Đặt lại ${e?.time}`,provider_quota_resets_meta:e=>`reset lúc ${e?.a0}`,provider_quota_retry_after:e=>`Thử lại sau ${e?.a0}`,provider_quota_session_limit:()=>`Giới hạn 5 giờ`,provider_quota_status_available:()=>`khả dụng`,provider_quota_status_checked:()=>`đã kiểm tra`,provider_quota_status_exhausted:()=>`đã hết`,provider_quota_status_failed:()=>`thất bại`,provider_quota_status_invalid_key:()=>`key không hợp lệ`,provider_quota_status_no_key:()=>`không có key`,provider_quota_status_removed:()=>`đã xóa`,provider_quota_status_stale:()=>`dữ liệu cũ`,provider_quota_status_unavailable:()=>`không khả dụng`,provider_quota_status_unsupported:()=>`không hỗ trợ`,provider_quota_title:()=>`Hạn mức nhà cung cấp`,provider_quota_unavailable:()=>`Trạng thái quota không khả dụng`,provider_quota_under_pace:e=>`Dưới nhịp ${e?.percent}`,provider_quota_used_meta:e=>`${e?.a0} đã dùng`,provider_quota_weekly_limit:()=>`Giới hạn hàng tuần`,provider_quota_window_fallback:()=>`Khoảng thời gian`,providers_empty:()=>`Không tìm thấy nhà cung cấp nào có thể cấu hình.`,providers_enter_key:()=>`Vui lòng nhập khóa API`,providers_key_placeholder_replace:()=>`Nhập key mới để thay thế…`,providers_key_removed:()=>`Đã xóa API key`,providers_key_updated:()=>`Đã lưu API key`,providers_models_refreshed:()=>`Đã làm mới model`,providers_oauth_config_yaml_hint:()=>`Token được cấu hình qua config.yaml. Để cập nhật, chỉnh sửa phần providers trong config.yaml hoặc chạy hermes auth.`,providers_oauth_hint:()=>`Đã xác thực bằng OAuth. Không cần API key.`,providers_oauth_not_configured_hint:()=>`Chưa xác thực. Chạy hermes auth trong terminal để cấu hình provider này.`,providers_refresh_models:()=>`Làm mới model`,providers_refreshing:()=>`Đang làm mới…`,providers_remove:()=>`Xóa`,providers_removing:()=>`Đang xóa…`,providers_save:()=>`Lưu`,providers_saving:()=>`Đang lưu…`,providers_section_meta:()=>`Quản lý API key cho các nhà cung cấp AI. Thay đổi có hiệu lực ngay lập tức.`,providers_section_title:()=>`Nhà cung cấp`,providers_status_configured:()=>`Đã cấu hình API key`,providers_status_model:()=>`Mô hình`,providers_status_not_configured:()=>`Chưa có API key`,providers_status_not_configured_label:()=>`Chưa cấu hình`,providers_tab_title:()=>`Provider`,queued_cancel:()=>`Hủy tin nhắn đang chờ`,queued_count:e=>`${e?.n} đang chờ`,queued_label:()=>`Gửi sau phản hồi`,raw_view:()=>`Dữ liệu thô`,reconnect_active:()=>`Một phản hồi vẫn đang được tạo. Tải lại khi sẵn sàng?`,reconnect_finished:()=>`Một phản hồi đang diễn ra khi bạn rời đi lần trước. Tin nhắn có thể đã được cập nhật.`,regen_failed:()=>`Tạo lại thất bại: `,regenerate:()=>`Tạo lại phản hồi`,remove:()=>`Xóa bỏ`,remove_failed:()=>`Xóa thất bại: `,remove_title:()=>`Xóa`,rename_failed:()=>`Đổi tên thất bại: `,rename_prompt:()=>`Tên mới:`,rename_title:()=>`Đổi tên`,renamed_to:()=>`Đã đổi tên thành `,retrieval_context_label:()=>`Ngữ cảnh đã lập chỉ mục`,retrieval_context_preview:()=>`Các tin nhắn trước được lưu và có thể truy xuất bằng công cụ ngữ cảnh`,retry_failed:()=>`Gửi lại thất bại: `,reveal_failed:()=>`Hiển thị thất bại: `,reveal_in_finder:()=>`Hiện trong trình quản lý tệp`,runtime_notice_region:()=>`Trạng thái kết nối và thời gian chạy`,runtime_notice_reload_title:()=>`Tải lại tin nhắn?`,runtime_notice_restart_slow_title:()=>`Máy chủ phản hồi lâu hơn dự kiến`,runtime_notice_restarting_title:()=>`Đang khởi động lại…`,runtime_notice_restored_detail:()=>`Hermes đã có thể truy cập lại. Đang kết nối lại cuộc trò chuyện này.`,runtime_notice_restored_title:()=>`Đã khôi phục kết nối`,save:()=>`Lưu`,save_failed:()=>`Lưu thất bại: `,save_skill:()=>`Lưu kỹ năng`,save_title:()=>`Lưu thay đổi`,saved:()=>`Đã lưu`,saved_prompts_delete:()=>`Xóa prompt`,saved_prompts_empty:()=>`Chưa có prompt đã lưu.`,saved_prompts_empty_input:()=>`Hãy nhập prompt trước khi lưu`,saved_prompts_save_current:()=>`Lưu nội dung hiện tại thành prompt`,saved_prompts_saved:()=>`Đã lưu prompt`,scheduled_jobs:()=>`Tác vụ đã lên lịch`,search:()=>`Tìm kiếm`,search_skills:()=>`Tìm kỹ năng...`,selected_text_refine:()=>`Tinh chỉnh`,selected_text_refine_instruction:()=>`Hướng dẫn tinh chỉnh:`,selected_text_refine_title:()=>`Bắt đầu bản nháp tinh chỉnh có thể chỉnh sửa từ đoạn đã chọn`,selected_text_reply:()=>`Trả lời với đoạn đã chọn`,selected_text_reply_appended:()=>`Đã thêm đoạn đã chọn vào ô nhập`,selected_text_reply_title:()=>`Thêm đoạn chat đã chọn làm ngữ cảnh trích dẫn`,session_archive:()=>`Lưu trữ cuộc trò chuyện`,session_archive_desc:()=>`Ẩn cuộc trò chuyện này cho tới khi hiện archived`,session_archive_failed:()=>`Lưu trữ thất bại: `,session_archive_worktree_desc:()=>`Ẩn cuộc trò chuyện này; giữ worktree trên đĩa`,session_archived:()=>`Đã lưu trữ phiên`,session_archived_worktree:()=>`Đã lưu trữ phiên. Worktree vẫn còn trên đĩa.`,session_attention_approval:e=>e?.n===1||e?.n===`1`?`Phê duyệt`:`${e?.n} phê duyệt`,session_attention_approval_title:()=>`Đang chờ quyết định cấp quyền`,session_attention_clarify:t=>(e(`vi`,t?.n,{}),t?.n===1||t?.n===`1`?`Câu hỏi`:`${t?.n} câu hỏi`),session_attention_clarify_title:()=>`Đang chờ câu trả lời của bạn`,session_attention_generic_title:()=>`Đang chờ thao tác từ người dùng`,session_batch_archive:()=>`Lưu trữ`,session_batch_archive_confirm:e=>`Lưu trữ ${e?.a0} cuộc trò chuyện?`,session_batch_archive_worktree_confirm:e=>`Lưu trữ ${e?.a0} cuộc trò chuyện? ${e?.a1} cuộc trò chuyện dùng worktree sẽ giữ nguyên thư mục worktree trên đĩa.`,session_batch_delete:()=>`Xóa`,session_batch_delete_confirm:e=>`Xóa ${e?.a0} cuộc trò chuyện?`,session_batch_delete_worktree_confirm:e=>`Xóa ${e?.a0} cuộc trò chuyện? ${e?.a1} cuộc trò chuyện dùng worktree sẽ giữ nguyên thư mục worktree trên đĩa.`,session_batch_move:()=>`Chuyển vào dự án`,session_child_toggle_hint:e=>`${e?.a0} — các cuộc trò chuyện con được tạo từ phiên này. Bấm để hiện hoặc ẩn chúng.`,session_copy_link:()=>`Sao chép liên kết cuộc trò chuyện`,session_copy_link_desc:()=>`Sao chép liên kết trực tiếp tới cuộc trò chuyện này`,session_delete:()=>`Xóa cuộc trò chuyện`,session_delete_confirm:()=>`Xóa cuộc trò chuyện này?`,session_delete_desc:()=>`Xóa vĩnh viễn cuộc trò chuyện này`,session_delete_worktree_confirm:e=>`Xóa cuộc trò chuyện này? Worktree tại ${e?.path} sẽ vẫn còn trên đĩa.`,session_delete_worktree_desc:()=>`Chỉ xóa cuộc trò chuyện WebUI; giữ worktree trên đĩa`,session_deleted:()=>`Đã xóa cuộc trò chuyện`,session_deleted_worktree:()=>`Đã xóa cuộc trò chuyện. Worktree vẫn còn trên đĩa.`,session_deselect_all:()=>`Bỏ chọn tất cả`,session_duplicate:()=>`Nhân bản cuộc trò chuyện`,session_duplicate_desc:()=>`Tạo bản sao với cùng workspace và model`,session_duplicate_failed:()=>`Nhân bản thất bại: `,session_duplicated:()=>`Đã nhân bản phiên`,session_hidden:()=>`Đã ẩn phiên khỏi danh sách`,session_hide_external:()=>`Ẩn khỏi danh sách`,session_hide_external_desc:()=>`Ẩn phiên import này khỏi WebUI mà không xóa lịch sử nguồn.`,session_imported:()=>`Đã nhập phiên trò chuyện`,session_jump_end:()=>`Cuối`,session_jump_end_label:()=>`Nhảy tới cuối phiên`,session_jump_start:()=>`Đầu`,session_jump_start_label:()=>`Nhảy tới đầu phiên`,session_lineage_segment_open:()=>`Mở đoạn lineage`,session_lineage_segment_untitled:()=>`Segment chưa có tiêu đề`,session_lineage_static_hint:e=>`${e?.a0} — các lượt ngữ cảnh trước đó đang được thu gọn ở đây.`,session_lineage_toggle_hint:e=>`${e?.a0} — các lượt ngữ cảnh trước đó đang được thu gọn ở đây. Bấm để hiện hoặc ẩn chúng.`,session_link_copied:()=>`Đã sao chép liên kết cuộc trò chuyện vào clipboard`,session_link_copy_failed:()=>`Sao chép liên kết cuộc trò chuyện thất bại: `,session_meta_children:t=>(e(`vi`,t?.n,{}),`${t?.n} phiên con`),session_meta_messages:t=>(e(`vi`,t?.n,{}),`${t?.n} tin nhắn`),session_meta_segments:t=>(e(`vi`,t?.n,{}),`${t?.n} lượt trước`),session_move_project:()=>`Chuyển sang dự án`,session_move_project_desc_has:()=>`Đổi project cho cuộc trò chuyện này`,session_move_project_desc_none:()=>`Gán project cho cuộc trò chuyện này`,session_new_message:()=>`Tin nhắn mới`,session_new_message_label:()=>`Có tin nhắn mới, nhảy xuống cuối`,session_no_selection:()=>`Chưa chọn cuộc trò chuyện nào`,session_pin:()=>`Ghim cuộc trò chuyện`,session_pin_desc:()=>`Giữ cuộc trò chuyện này ở đầu danh sách`,session_pin_failed:()=>`Ghim thất bại: `,session_readonly_title_hint:e=>`Phiên import chỉ đọc — ${e?.a0}`,session_rename:()=>`Đổi tên cuộc trò chuyện`,session_rename_desc:()=>`Chỉnh sửa tiêu đề cuộc trò chuyện này`,session_rename_failed_no_row:()=>`Không thể bắt đầu đổi tên — không tìm thấy hàng.`,session_restore:()=>`Khôi phục cuộc trò chuyện`,session_restore_desc:()=>`Đưa cuộc trò chuyện này trở lại danh sách chính`,session_restored:()=>`Đã khôi phục phiên`,session_select_all:()=>`Chọn tất cả`,session_select_mode:()=>`Chọn`,session_select_mode_desc:()=>`Chọn các cuộc trò chuyện để quản lý hàng loạt`,session_selected_count:e=>`${e?.a0} mục đã chọn`,session_stop_response:()=>`Dừng phản hồi`,session_stop_response_desc:()=>`Hủy phản hồi đang chạy cho cuộc trò chuyện này`,session_time_bucket_last_week:()=>`Tuần trước`,session_time_bucket_older:()=>`Cũ hơn`,session_time_bucket_this_week:()=>`Tuần này`,session_time_bucket_today:()=>`Hôm nay`,session_time_bucket_yesterday:()=>`Hôm qua`,session_time_days_ago:e=>`${e?.n}n`,session_time_hours_ago:e=>`${e?.n}g`,session_time_last_week:()=>`1t`,session_time_minutes_ago:e=>`${e?.n}p`,session_time_unknown:()=>`Không xác định`,session_title_regenerate:()=>`Tạo lại tiêu đề`,session_title_regenerate_desc:()=>`Yêu cầu Hermes tạo tiêu đề mới từ cuộc trò chuyện`,session_title_regenerate_failed:()=>`Tạo lại tiêu đề thất bại: `,session_title_regenerated:e=>`Đã tạo lại tiêu đề: ${e?.title}`,session_title_regenerating:()=>`Đang tạo lại tiêu đề…`,session_toolsets:()=>`Bộ công cụ phiên`,session_toolsets_applied:()=>`Đã cập nhật bộ công cụ`,session_toolsets_apply:()=>`Áp dụng`,session_toolsets_clear:()=>`Xóa (dùng cấu hình toàn cục)`,session_toolsets_cleared:()=>`Đã xóa bộ công cụ — dùng cấu hình toàn cục`,session_toolsets_configured_servers:()=>`Máy chủ MCP đã cấu hình`,session_toolsets_custom:()=>`Tùy chỉnh`,session_toolsets_desc:()=>`Giới hạn công cụ khả dụng cho phiên này (để trống = dùng cấu hình toàn cục)`,session_toolsets_failed:()=>`Cập nhật bộ công cụ thất bại: `,session_toolsets_global:()=>`Toàn cục (mặc định)`,session_toolsets_loading_servers:()=>`Đang tải các máy chủ đã cấu hình...`,session_toolsets_no_configured_servers:()=>`Chưa có máy chủ MCP nào được cấu hình`,session_toolsets_profile_defaults:()=>`Mặc định của profile đang hoạt động`,session_toolsets_use_profile_defaults:()=>`Dùng mặc định của profile đang hoạt động`,session_unpin:()=>`Bỏ ghim cuộc trò chuyện`,session_unpin_desc:()=>`Bỏ khỏi danh sách ghim`,session_worktree_remove:()=>`Gỡ worktree`,session_worktree_remove_ahead_warning:t=>(e(`vi`,t?.ahead,{}),`${t?.ahead} commit chưa push sẽ bị mất.`),session_worktree_remove_confirm:e=>`Gỡ git worktree khỏi đĩa?
|
|
2
2
|
|
|
3
3
|
Đường dẫn: ${e?.path}
|
|
4
4
|
|