@songsid/agend 2.3.0-beta.22 → 2.3.0-beta.24
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/README.md +2 -2
- package/README.zh-TW.md +2 -2
- package/dist/agent-cli.js +4 -2
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.d.ts +1 -0
- package/dist/agent-endpoint.js +4 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-whats-new.d.ts +5 -0
- package/dist/agent-whats-new.js +16 -1
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/auth-api.d.ts +7 -0
- package/dist/auth-api.js +54 -21
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/codex-package.d.ts +30 -0
- package/dist/backend/codex-package.js +133 -0
- package/dist/backend/codex-package.js.map +1 -0
- package/dist/backend/codex.d.ts +2 -0
- package/dist/backend/codex.js +9 -2
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/grok.js +3 -1
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +9 -1
- package/dist/backend/kiro.js +102 -1
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/opencode-permission.js +1 -1
- package/dist/backend/opencode-permission.js.map +1 -1
- package/dist/backend/opencode.js +2 -1
- package/dist/backend/opencode.js.map +1 -1
- package/dist/binary-probe.js +1 -1
- package/dist/bug-report-cli.js +11 -10
- package/dist/bug-report-cli.js.map +1 -1
- package/dist/bug-report.js +11 -10
- package/dist/bug-report.js.map +1 -1
- package/dist/bundled-skills.d.ts +7 -3
- package/dist/bundled-skills.js +16 -7
- package/dist/bundled-skills.js.map +1 -1
- package/dist/channel/adapters/discord.js +3 -3
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-server.js +12 -4
- package/dist/channel/mcp-server.js.map +1 -1
- package/dist/channel/mcp-tools.d.ts +3 -1
- package/dist/channel/mcp-tools.js +36 -0
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/child-process.d.ts +21 -0
- package/dist/child-process.js +54 -0
- package/dist/child-process.js.map +1 -0
- package/dist/cli.js +188 -204
- package/dist/cli.js.map +1 -1
- package/dist/command-table.d.ts +1 -1
- package/dist/command-table.js +1 -1
- package/dist/command-table.js.map +1 -1
- package/dist/config-validator.js +20 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +8 -0
- package/dist/daemon.js +31 -8
- package/dist/daemon.js.map +1 -1
- package/dist/darwin-memory.js +1 -1
- package/dist/doctor.d.ts +5 -0
- package/dist/doctor.js +42 -0
- package/dist/doctor.js.map +1 -1
- package/dist/export-import.js +4 -3
- package/dist/export-import.js.map +1 -1
- package/dist/fleet-level-config.d.ts +1 -1
- package/dist/fleet-level-config.js +2 -0
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +45 -0
- package/dist/fleet-manager.js +324 -36
- package/dist/fleet-manager.js.map +1 -1
- package/dist/full-restart.d.ts +5 -5
- package/dist/full-restart.js +5 -5
- package/dist/full-restart.js.map +1 -1
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +48 -10
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +1 -1
- package/dist/general-knowledge/skills/fleet-restart/SKILL.md +7 -8
- package/dist/general-knowledge/skills/multi-channel/SKILL.md +1 -1
- package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +319 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +529 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +17 -4
- package/dist/general-knowledge/steering/core-rules.md +1 -1
- package/dist/instance-config-impact.js +10 -3
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.js +4 -4
- package/dist/locale.js +296 -4
- package/dist/locale.js.map +1 -1
- package/dist/login-flows.js +1 -1
- package/dist/login-shell.js +3 -1
- package/dist/login-shell.js.map +1 -1
- package/dist/ls-rows.js +1 -1
- package/dist/needs-you-hub.d.ts +98 -1
- package/dist/needs-you-hub.js +313 -44
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you-live.d.ts +5 -2
- package/dist/needs-you-live.js +6 -3
- package/dist/needs-you-live.js.map +1 -1
- package/dist/needs-you.d.ts +58 -3
- package/dist/needs-you.js +36 -3
- package/dist/needs-you.js.map +1 -1
- package/dist/outbound-schemas.d.ts +3 -3
- package/dist/public-link-progress.d.ts +12 -1
- package/dist/public-link-progress.js +5 -10
- package/dist/public-link-progress.js.map +1 -1
- package/dist/public-tunnel-config.d.ts +5 -0
- package/dist/public-tunnel-config.js +45 -1
- package/dist/public-tunnel-config.js.map +1 -1
- package/dist/public-web-link.js +6 -5
- package/dist/public-web-link.js.map +1 -1
- package/dist/quickstart.js +15 -9
- package/dist/quickstart.js.map +1 -1
- package/dist/resource-report.js +1 -1
- package/dist/scheduler/task-board.d.ts +41 -1
- package/dist/scheduler/task-board.js +152 -5
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/sd-notify.js +2 -1
- package/dist/sd-notify.js.map +1 -1
- package/dist/service-installer.d.ts +69 -0
- package/dist/service-installer.js +182 -0
- package/dist/service-installer.js.map +1 -1
- package/dist/service-owner.d.ts +44 -0
- package/dist/service-owner.js +48 -0
- package/dist/service-owner.js.map +1 -0
- package/dist/service-plan.d.ts +8 -0
- package/dist/service-plan.js +13 -0
- package/dist/service-plan.js.map +1 -1
- package/dist/settings-api.d.ts +4 -0
- package/dist/settings-api.js +21 -3
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +88 -4
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-confirmation.d.ts +2 -0
- package/dist/settings-confirmation.js +14 -8
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-control.js +2 -1
- package/dist/settings-control.js.map +1 -1
- package/dist/settings-effect.js +2 -0
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.d.ts +2 -0
- package/dist/settings-http-confirmation.js +3 -2
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/settings-request-capability.d.ts +4 -1
- package/dist/settings-request-capability.js +11 -3
- package/dist/settings-request-capability.js.map +1 -1
- package/dist/setup-auth.d.ts +1 -0
- package/dist/setup-auth.js +2 -1
- package/dist/setup-auth.js.map +1 -1
- package/dist/setup-host.d.ts +1 -0
- package/dist/setup-host.js +7 -3
- package/dist/setup-host.js.map +1 -1
- package/dist/setup-wizard.js +1 -1
- package/dist/setup-wizard.js.map +1 -1
- package/dist/task-board-summary.d.ts +101 -0
- package/dist/task-board-summary.js +177 -0
- package/dist/task-board-summary.js.map +1 -0
- package/dist/task-board-waker.d.ts +8 -1
- package/dist/task-board-waker.js +15 -6
- package/dist/task-board-waker.js.map +1 -1
- package/dist/tmux-control.js +1 -1
- package/dist/tmux-control.js.map +1 -1
- package/dist/tmux-exec-helper.d.ts +13 -3
- package/dist/tmux-exec-helper.js +34 -29
- package/dist/tmux-exec-helper.js.map +1 -1
- package/dist/tmux-manager.js +1 -1
- package/dist/tmux-read.js +1 -1
- package/dist/tmux-read.js.map +1 -1
- package/dist/topic-commands.d.ts +3 -0
- package/dist/topic-commands.js +29 -18
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-monitor.js +5 -0
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-sources.d.ts +2 -0
- package/dist/transcript-sources.js +4 -0
- package/dist/transcript-sources.js.map +1 -1
- package/dist/tunnel/cloudflared-install.js +3 -1
- package/dist/tunnel/cloudflared-install.js.map +1 -1
- package/dist/tunnel/cloudflared.d.ts +1 -1
- package/dist/tunnel/cloudflared.js +51 -10
- package/dist/tunnel/cloudflared.js.map +1 -1
- package/dist/tunnel/named-diagnostics.d.ts +13 -0
- package/dist/tunnel/named-diagnostics.js +52 -0
- package/dist/tunnel/named-diagnostics.js.map +1 -0
- package/dist/tunnel/types.d.ts +2 -1
- package/dist/tunnel/types.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/ui/app-effects.js +10 -4
- package/dist/ui/chat-strings.js +3 -0
- package/dist/ui/chat-thread.js +14 -7
- package/dist/ui/effect-trial-offer.js +2 -31
- package/dist/ui/effects-waker.js +2 -70
- package/dist/ui/fleet-task-card.js +5 -5
- package/dist/ui/fleet-task-common.js +43 -9
- package/dist/ui/fleet-task-work.js +107 -0
- package/dist/ui/fleet-tasks.js +46 -12
- package/dist/ui/image-lightbox.js +39 -1
- package/dist/ui/image-zoom.js +242 -0
- package/dist/ui/panel-chat.js +24 -13
- package/dist/ui/panel-details.js +2 -0
- package/dist/ui/panel-fleet.js +6 -2
- package/dist/ui/panel-needs.js +21 -6
- package/dist/ui/panel-settings.js +35 -13
- package/dist/ui/preview-panel.js +2 -1
- package/dist/ui/search-dialog.js +2 -1
- package/dist/ui/settings-appearance.js +44 -10
- package/dist/ui/settings-dialogs.js +33 -17
- package/dist/ui/settings-discord.js +6 -2
- package/dist/ui/settings-guests.js +2 -1
- package/dist/ui/settings-model.js +2 -11
- package/dist/ui/settings-mods.js +8 -3
- package/dist/ui/settings-strings.js +32 -0
- package/dist/ui/settings-token.js +3 -1
- package/dist/ui/settings-web-authority.js +6 -3
- package/dist/ui/settings-wizard.js +13 -7
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-needs.js +2 -2
- package/dist/ui/shared/app-store.js +2 -2
- package/dist/ui/shared/app.css +93 -32
- package/dist/ui/shared/app.js +5 -1
- package/dist/ui/shared/effect-app-runtime.js +7 -5
- package/dist/ui/shared/effect-chat-runtime.js +2 -7
- package/dist/ui/shared/effect-cursor.js +3 -2
- package/dist/ui/shared/effect-display-metadata.js +39 -0
- package/dist/ui/shared/effect-registry.js +4 -2
- package/dist/ui/shared/effect-runtime-loader.js +3 -1
- package/dist/ui/shared/effect-stock-trust.js +5 -5
- package/dist/ui/shared/feature-flags.js +127 -0
- package/dist/ui/shared/identity-color.js +6 -3
- package/dist/ui/shared/instance-nav.js +3 -2
- package/dist/ui/shared/panel-view.js +14 -29
- package/dist/ui/shared/text-undo.js +210 -0
- package/dist/ui/shared/ui-dialog.js +4 -3
- package/dist/ui/shared/ui-icons.js +2 -0
- package/dist/ui/shared/usage-dialog.js +29 -8
- package/dist/ui/shared/view-strings.js +2 -4
- package/dist/ui/web-terminal/terminal.html +10 -10
- package/dist/ui/web-terminal/terminal.js +58 -12
- package/dist/update-dispatch.js +1 -1
- package/dist/update-launch.d.ts +1 -1
- package/dist/update-launch.js +1 -2
- package/dist/update-launch.js.map +1 -1
- package/dist/update-preflight.js +1 -1
- package/dist/usage/providers.js +1 -1
- package/dist/usage/providers.js.map +1 -1
- package/dist/view-api.js +1 -1
- package/dist/web-api.d.ts +6 -0
- package/dist/web-api.js +163 -21
- package/dist/web-api.js.map +1 -1
- package/dist/web-app-icon-worker.js +2 -1
- package/dist/web-app-icon-worker.js.map +1 -1
- package/dist/web-app-icon.d.ts +10 -8
- package/dist/web-app-icon.js +14 -13
- package/dist/web-app-icon.js.map +1 -1
- package/dist/web-appearance-tools.d.ts +1 -0
- package/dist/web-appearance-tools.js +7 -3
- package/dist/web-appearance-tools.js.map +1 -1
- package/dist/web-appearance.d.ts +4 -10
- package/dist/web-appearance.js +4 -3
- package/dist/web-appearance.js.map +1 -1
- package/dist/web-auth.d.ts +8 -4
- package/dist/web-auth.js +28 -17
- package/dist/web-auth.js.map +1 -1
- package/dist/web-chat-history.d.ts +14 -0
- package/dist/web-chat-history.js +26 -1
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-cookie-names.d.ts +5 -0
- package/dist/web-cookie-names.js +12 -0
- package/dist/web-cookie-names.js.map +1 -0
- package/dist/web-experimental-http.d.ts +2 -0
- package/dist/web-experimental-http.js +12 -0
- package/dist/web-experimental-http.js.map +1 -0
- package/dist/web-experimental.d.ts +11 -0
- package/dist/web-experimental.js +49 -0
- package/dist/web-experimental.js.map +1 -0
- package/dist/web-guest-access.d.ts +1 -0
- package/dist/web-guest-access.js +4 -2
- package/dist/web-guest-access.js.map +1 -1
- package/dist/web-mod-store.d.ts +2 -0
- package/dist/web-mod-store.js +10 -0
- package/dist/web-mod-store.js.map +1 -1
- package/dist/web-png.d.ts +4 -0
- package/dist/web-png.js +10 -2
- package/dist/web-png.js.map +1 -1
- package/dist/web-preview.d.ts +2 -0
- package/dist/web-preview.js +2 -0
- package/dist/web-preview.js.map +1 -1
- package/dist/web-returning-device.d.ts +4 -2
- package/dist/web-returning-device.js +12 -5
- package/dist/web-returning-device.js.map +1 -1
- package/dist/web-settings-patch.d.ts +2 -1
- package/dist/web-settings-patch.js +5 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-settings-tools.d.ts +1 -0
- package/dist/web-settings-tools.js +14 -10
- package/dist/web-settings-tools.js.map +1 -1
- package/dist/web-terminal.js +1 -1
- package/dist/web-theme-store.d.ts +2 -2
- package/dist/web-theme-store.js +6 -3
- package/dist/web-theme-store.js.map +1 -1
- package/package.json +11 -11
|
@@ -82,6 +82,7 @@ const CLASSIC_FIELDS = [
|
|
|
82
82
|
* fleet process or the channel binding rather than to an instance's config.
|
|
83
83
|
*/
|
|
84
84
|
const FLEET_FIELD_IMPACTS = {
|
|
85
|
+
"web.experimental.canvas_worker": "now",
|
|
85
86
|
"web.echo_to_channel": "now",
|
|
86
87
|
"web.log_tab": "now",
|
|
87
88
|
"web.usage_report_on_public_link": "now",
|
|
@@ -99,15 +100,21 @@ const FLEET_FIELD_IMPACTS = {
|
|
|
99
100
|
"instance_quota.files", "instance_quota.mib"].map((k) => [`web.appearance.${k}`, "now"])),
|
|
100
101
|
"web_terminal.enabled": "now",
|
|
101
102
|
"web_terminal.ttl_minutes": "now",
|
|
102
|
-
|
|
103
|
+
// #2346: guests and web authority are read at each sign-in, message and check (`web` is read at the point of use);
|
|
104
|
+
// the page asked for nothing and wrote "now" itself.
|
|
105
|
+
"web.guests": "now",
|
|
106
|
+
"web.verified_authority": "now",
|
|
107
|
+
// #2346: read once at startup (fleet-level-config.ts STARTUP_ONLY_FLEET_KEYS: setLocale(detectLocale(fleet))).
|
|
108
|
+
"defaults.locale": "fleet",
|
|
103
109
|
"fleet.channels": "fleet",
|
|
104
110
|
"fleet.channel.access.mode": "fleet",
|
|
105
111
|
"fleet.channel.access.allowed_users": "fleet",
|
|
106
112
|
// #1056: each stamp resolves the connection's status emojis from the live config (an agent's "avoid these" list
|
|
107
113
|
// follows at its next start), so this applies now; the rest of a connection still needs the fleet restart.
|
|
108
114
|
"fleet.channel.options.status_emojis": "now",
|
|
109
|
-
|
|
110
|
-
"fleet.
|
|
115
|
+
// #2346: read at each spawn by the SpawnGate (fleet-level-config.ts RUNTIME_READ_FLEET_KEYS): the next start uses it.
|
|
116
|
+
"fleet.spawn_concurrency": "now",
|
|
117
|
+
"fleet.spawn_stagger_ms": "now",
|
|
111
118
|
"classic.admin_users": "fleet",
|
|
112
119
|
"classic.allowed_guilds": "fleet",
|
|
113
120
|
// #2168: a confirmed delete stops and removes the agent at once (removeInstance) — no AgEnD restart.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsC,IAAI,GAAG,CAAuB;IACvG,eAAe;IACf,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,WAAW;IACX,sFAAsF;IACtF,2BAA2B;IAC3B,wFAAwF;IACxF,qBAAqB;CACtB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAChE,CAAC,eAAe,EAAE,wBAAwB,CAAW;KACnD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACpD,CAAC;AAEF;;;GAGG;AACH,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IAC9D,UAAU;IACV,YAAY;IACZ,eAAe;CAChB,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,eAAe,GAAG;IACtB,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB;IACtE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe;IACzE,eAAe,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,WAAW;IACzE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU;IACjE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB;IAC7D,0EAA0E;IAC1E,kEAAkE;IAClE,eAAe;IACf,2BAA2B;IAC3B,qDAAqD;IACrD,qBAAqB;CACb,CAAC;AAEX,2DAA2D;AAC3D,MAAM,cAAc,GAAG;IACrB,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe;IACvD,wBAAwB,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB;IACvE,UAAU;CACF,CAAC;AAEX;;;GAGG;AACH,MAAM,mBAAmB,GAA2C;IAClE,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,KAAK;IACpB,iCAAiC,EAAE,KAAK;IACxC,8BAA8B,EAAE,KAAK;IACrC,6BAA6B,EAAE,KAAK;IACpC,0BAA0B,EAAE,KAAK;IACjC,0BAA0B,EAAE,KAAK;IACjC,kCAAkC,EAAE,KAAK;IACzC,6BAA6B,EAAE,KAAK;IACpC,+EAA+E;IAC/E,kCAAkC,EAAE,KAAK;IACzC,8BAA8B,EAAE,KAAK;IACrC,oGAAoG;IACpG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB;QAC/I,sBAAsB,EAAE,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAc,CAAC,CAAC,CAAC;IACpG,sBAAsB,EAAE,KAAK;IAC7B,0BAA0B,EAAE,KAAK;IACjC,
|
|
1
|
+
{"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1747,7 +1747,7 @@ export class InstanceLifecycle {
|
|
|
1747
1747
|
}
|
|
1748
1748
|
else {
|
|
1749
1749
|
try {
|
|
1750
|
-
const { execFile: execFileCb } = await import("
|
|
1750
|
+
const { execFile: execFileCb } = await import("./child-process.js");
|
|
1751
1751
|
const { promisify } = await import("node:util");
|
|
1752
1752
|
check();
|
|
1753
1753
|
const execFileAsync = promisify(execFileCb);
|
|
@@ -1776,7 +1776,7 @@ export class InstanceLifecycle {
|
|
|
1776
1776
|
}
|
|
1777
1777
|
// Prune stale worktree records (e.g. if directory was manually deleted)
|
|
1778
1778
|
try {
|
|
1779
|
-
const { execFile: execFileCb } = await import("
|
|
1779
|
+
const { execFile: execFileCb } = await import("./child-process.js");
|
|
1780
1780
|
const { promisify } = await import("node:util");
|
|
1781
1781
|
check();
|
|
1782
1782
|
const execFileAsync = promisify(execFileCb);
|
|
@@ -1906,7 +1906,7 @@ export class InstanceLifecycle {
|
|
|
1906
1906
|
}
|
|
1907
1907
|
};
|
|
1908
1908
|
if (acquiredWorktree) {
|
|
1909
|
-
const { execFile } = await import("
|
|
1909
|
+
const { execFile } = await import("./child-process.js");
|
|
1910
1910
|
const { promisify } = await import("node:util");
|
|
1911
1911
|
if (!ownsPath())
|
|
1912
1912
|
return;
|
|
@@ -1924,7 +1924,7 @@ export class InstanceLifecycle {
|
|
|
1924
1924
|
}
|
|
1925
1925
|
if (branch) {
|
|
1926
1926
|
try {
|
|
1927
|
-
const { execFile: execFileCb } = await import("
|
|
1927
|
+
const { execFile: execFileCb } = await import("./child-process.js");
|
|
1928
1928
|
const { promisify } = await import("node:util");
|
|
1929
1929
|
const nativeExec = promisify(execFileCb);
|
|
1930
1930
|
const execFileAsync = async (file, args, options, acquired) => {
|
package/dist/locale.js
CHANGED
|
@@ -145,6 +145,12 @@ const enMessages = {
|
|
|
145
145
|
"dashboard.progress.fail.no-address": "Cloudflare gave no public address in time",
|
|
146
146
|
"dashboard.progress.fail.rate-limited": "Cloudflare is limiting new temporary links from this machine — try again in a while; the dashboard on this machine still works",
|
|
147
147
|
"dashboard.progress.fail.provisioning-failed": "Cloudflare refused to create a temporary link right now — try again later; the dashboard on this machine still works",
|
|
148
|
+
"dashboard.progress.fail.named-auth-failed": "the named tunnel token was refused — copy only the connector token in Cloudflare and set it again",
|
|
149
|
+
"dashboard.progress.fail.named-route-missing": "the named hostname did not reach a published application — check this tunnel’s hostname, DNS and published application route",
|
|
150
|
+
"dashboard.progress.fail.named-hostname-mismatch": "the named hostname served a different page — point its published application to AgEnD’s origin URL",
|
|
151
|
+
"dashboard.progress.fail.named-origin-unreachable": "Cloudflare could not reach the local origin — check the published application’s origin URL and port",
|
|
152
|
+
"dashboard.progress.fail.named-connection-failed": "the named tunnel could not connect to Cloudflare — check network, DNS and firewall access, then retry",
|
|
153
|
+
"dashboard.progress.fail.origin-port-in-use": "the named tunnel’s local origin port is already in use — close the conflicting program or choose another origin port and update the Cloudflare route",
|
|
148
154
|
"dashboard.progress.fail.process-exited": "cloudflared stopped before it gave a public address",
|
|
149
155
|
"dashboard.progress.fail.bad-address": "Cloudflare gave an address AgEnD could not use",
|
|
150
156
|
"dashboard.progress.fail.unreachable": "the public address never reached this fleet",
|
|
@@ -170,6 +176,7 @@ const enMessages = {
|
|
|
170
176
|
"dashboard.code": "• Code: {0} (works once, valid {1} min)",
|
|
171
177
|
"dashboard.menu_instruction": "Press a sign-in button to get your private link and code.",
|
|
172
178
|
"dashboard.code_help": "Keep your sign-in code private. Use /web revoke to sign out all browsers and close the public link.",
|
|
179
|
+
"dashboard.deprecated": "`/dashboard` is deprecated. Use `/web`.",
|
|
173
180
|
"dashboard.revoked": "🔒 Signed out {0} web session(s) and withdrew any unused code.",
|
|
174
181
|
"dashboard.revoked_not_durable": "⚠️ Signed out {0} web session(s) for now, but the change could NOT be saved: ~/.agend/web-sessions.json could not be updated or removed, so a fleet restart may bring those sessions back. Fix that file's permissions and run /web revoke again, or rotate the token with agend web-token rotate.",
|
|
175
182
|
"web.login_notice": "🔐 New web sign-in: {0} ({1}, session {2}). If this was not you, send /web revoke.",
|
|
@@ -196,6 +203,9 @@ const enMessages = {
|
|
|
196
203
|
"update.available_stable": "🆕 AgEnD {0} (stable) is available (current: {1}, a prerelease). /update stays on its prerelease channel; to switch to the stable release run: agend update --stable",
|
|
197
204
|
"update.highlights": "Highlights: {0}",
|
|
198
205
|
"needs.live_header": "📥 Needs you — {0}",
|
|
206
|
+
"needs.live_header_lane": "📥 Needs you here — {0}",
|
|
207
|
+
"needs.live_moved": "This list moved: these cards now wait elsewhere (the project's lead or the instance that handed them out changed).",
|
|
208
|
+
"needs.task_moved": "This card's buttons are in another channel now.",
|
|
199
209
|
"needs.live_more": "… and {0} more: open /ui",
|
|
200
210
|
"needs.live_empty": "✅ Nothing needs you right now.",
|
|
201
211
|
"needs.live_stopped": "⏹ Fleet stopped. This list resumes when it starts.",
|
|
@@ -219,6 +229,45 @@ const enMessages = {
|
|
|
219
229
|
"needs.reason.crashed": "Crashed",
|
|
220
230
|
"needs.reason.delivery_uncertain": "Could not confirm delivery",
|
|
221
231
|
"needs.reason.delivery_failed": "Delivery failed",
|
|
232
|
+
"needs.reason.task_review": "Waiting for your confirmation",
|
|
233
|
+
"needs.reason.task_blocked": "Blocked: asks you",
|
|
234
|
+
"needs.task_gap": "not wrapped up: {0}",
|
|
235
|
+
"needs.task_gap_unchecked": "{0} checklist item(s) unchecked",
|
|
236
|
+
"needs.task_gap_no_result": "no result",
|
|
237
|
+
"needs.task_gap_join": ", ",
|
|
238
|
+
"needs.task_confirm_button": "✅ Confirm {0}",
|
|
239
|
+
"needs.task_back_button": "↩️ Send back {0}",
|
|
240
|
+
"needs.task_answer_button": "💬 Answer {0}",
|
|
241
|
+
"needs.task_reply_asked": "Reply to the message I just posted.",
|
|
242
|
+
"needs.task_reply_already": "You were already asked about {0}: reply to that message.",
|
|
243
|
+
"needs.task_reply_busy": "Too many prompts are waiting for replies: try again in a few minutes.",
|
|
244
|
+
"needs.task_back_prompt": "↩️ Send back {0}{1}: reply to this message with what needs to change (within {2} minutes).",
|
|
245
|
+
"needs.task_answer_prompt": "💬 Answer {0}{1}: reply to this message with your answer (within {2} minutes); the card goes back in progress.",
|
|
246
|
+
"needs.task_reply_empty": "Nothing was written: {0} is unchanged.",
|
|
247
|
+
"needs.task_board_closed": "The task board is not open.",
|
|
248
|
+
"needs.task_confirmed": "✅ {0} confirmed.",
|
|
249
|
+
"needs.task_sent_back": "↩️ {0} sent back: its assignee reads why.",
|
|
250
|
+
"needs.task_answered": "💬 Answered {0}: it is in progress again.",
|
|
251
|
+
"needs.task_changed": "{0} changed meanwhile: the list will update — use the new one.",
|
|
252
|
+
"needs.task_refused": "{0}: {1}",
|
|
253
|
+
// #2246 step 3: the task board's daily summary (task-board-summary.ts)
|
|
254
|
+
"board_summary.title": "📋 Task board — daily summary, {0} – {1}",
|
|
255
|
+
"board_summary.card": "{0} \"{1}\"",
|
|
256
|
+
"board_summary.review": "Waiting for your confirmation ({0})",
|
|
257
|
+
"board_summary.blocked": "Blocked ({0})",
|
|
258
|
+
"board_summary.done": "Done ({0})",
|
|
259
|
+
"board_summary.created": "New ({0})",
|
|
260
|
+
"board_summary.projects": "Projects",
|
|
261
|
+
"board_summary.more": "…and {0} more",
|
|
262
|
+
"board_summary.subs": "{0} sub task(s): {1}",
|
|
263
|
+
"board_summary.subs_more": "{0} sub tasks: {1} and more",
|
|
264
|
+
"board_summary.reason": ": {0}",
|
|
265
|
+
"board_summary.join": ", ",
|
|
266
|
+
"board_summary.project": "{0} {1}% ({2}/{3})",
|
|
267
|
+
"board_summary.project_extra": ", {0}",
|
|
268
|
+
"board_summary.project_waiting": "{0} waiting for you",
|
|
269
|
+
"board_summary.project_blocked": "{0} blocked",
|
|
270
|
+
"board_summary.footer": "The board: Fleet › Tasks on the dashboard.",
|
|
222
271
|
"upgrade.web_chat": "🆕 AgEnD 2.2 adds web chat. You can keep chatting here.\nAdmins: send /web in General, then press a sign-in button to get a code.",
|
|
223
272
|
"dashboard.remote_hint": "📱 These links open on the fleet's own machine only. To use web chat from a phone or another computer: {0}",
|
|
224
273
|
"fleet.ready": "Fleet ready. {0}/{1} instances running. v{2}",
|
|
@@ -256,6 +305,8 @@ const enMessages = {
|
|
|
256
305
|
"inst.backend_launch_warning": "⚠️ {0}: {1}",
|
|
257
306
|
"codex.status_line_unverifiable": "AgEnD could not add a Context item to this Codex instance's status_line ({0}). Readiness then depends on the configured-footer and 10-second stable-screen checks, which are slower and fail safe. Add \"context-remaining\" to [tui] status_line in {1} to restore the normal check.",
|
|
258
307
|
"codex.resume_db_unreadable_fresh": "Codex's session database could not be read ({0}). Another Codex instance works in the same git repository, so this launch started a NEW conversation instead of `codex resume --last`, which could have taken that instance's session. Earlier conversations are kept; resume one by hand with `codex resume <id>` if needed.",
|
|
308
|
+
"codex.package_companion_missing": "Codex install incomplete — `{0}` is missing next to the codex binary ({1}/bin); reinstall Codex with the full official package",
|
|
309
|
+
"codex.package_companion_not_executable": "Codex install incomplete — `{0}` next to the codex binary ({1}/bin) is not executable; reinstall Codex with the full official package",
|
|
259
310
|
"codex.resume_db_unreadable_last": "Codex's session database could not be read ({0}). No other Codex instance shares this repository, so this launch fell back to `codex resume --last`.",
|
|
260
311
|
"codex.resume_none_but_history": "No resumable Codex conversation was found for {0}, so this launch started a NEW one. This workspace does have an earlier conversation ({1}); it is kept, and `codex resume {1}` continues it.",
|
|
261
312
|
"inst.dialog_parked_hold": "⚠️ {0} is parked on a CLI dialog ({1}) that AgEnD does NOT recognise well enough to answer. Open its pane and LOOK before pressing anything: the cursor may already be on a different option than usual. For Claude's session-resume prompt, move the cursor onto \"Resume full session as-is\" and confirm that one — never confirm \"Resume from summary\" unless you want to drop the full context. Deliveries to this instance are held until the dialog is gone.",
|
|
@@ -454,7 +505,7 @@ const enMessages = {
|
|
|
454
505
|
"slash.chat": "Send a message to the agent",
|
|
455
506
|
"slash.ctx": "Show context usage",
|
|
456
507
|
"slash.cancel": "Interrupt the agent's current operation (sends Escape)",
|
|
457
|
-
"slash.dashboard": "
|
|
508
|
+
"slash.dashboard": "Deprecated — use /web",
|
|
458
509
|
"slash.web": "Sign in to the web dashboard and web chat (admin only)",
|
|
459
510
|
"slash.compact": "Compact agent context window",
|
|
460
511
|
"slash.compact_arg": "[optional summary focus — Claude Code only]",
|
|
@@ -475,7 +526,7 @@ const enMessages = {
|
|
|
475
526
|
"login.profile_host_only": "A {0} profile is signed in on the host for now — run this there:\n`{2}`\n(`/login {0} {1}` from chat is not available for {0} yet.)",
|
|
476
527
|
"login.profile_unsupported": "{0} has no credential profiles: use `/login {0}` for its login.",
|
|
477
528
|
"login.profile_needs_backend": "A profile needs its backend too: `/login backend:claude-code profile:<name>`.",
|
|
478
|
-
"login.install_cli_moved": "
|
|
529
|
+
"login.install_cli_moved": "`/install-cli` was removed. Use `/login`.",
|
|
479
530
|
"login.install_by_name": "not installed, and not offered here — `/login {0}` installs it.",
|
|
480
531
|
"login.choose_backend": "Which backend should sign in again?",
|
|
481
532
|
"fleet.label_line": "🖥 Fleet: {0}",
|
|
@@ -680,6 +731,8 @@ const enMessages = {
|
|
|
680
731
|
"doctor.backend_unknown": "unknown backend",
|
|
681
732
|
"doctor.binary_available": "{0} available",
|
|
682
733
|
"doctor.binary_missing": "{0} not found",
|
|
734
|
+
"doctor.codex_package": "Codex package",
|
|
735
|
+
"doctor.codex_package_ok": "complete ({0})",
|
|
683
736
|
"doctor.not_found": "not found",
|
|
684
737
|
"doctor.term_unset": "not set — TUI rendering may fail",
|
|
685
738
|
"doctor.network_family": "network family",
|
|
@@ -698,6 +751,10 @@ const enMessages = {
|
|
|
698
751
|
"doctor.inactive_start": "inactive — run: agend start",
|
|
699
752
|
"doctor.dbus_set": "DBUS_SESSION_BUS_ADDRESS is set",
|
|
700
753
|
"doctor.dbus_unset": "DBUS_SESSION_BUS_ADDRESS is not set — systemd --user may not work",
|
|
754
|
+
"doctor.loaded_unit": "Loaded unit",
|
|
755
|
+
"doctor.notify_refused": "systemd refuses the fleet's ready signal and restarts it every time the start times out (15 minutes); `agend restart` repairs it (#2331)",
|
|
756
|
+
"doctor.unit_files": "Unit files",
|
|
757
|
+
"doctor.leftover": "Leftover",
|
|
701
758
|
"doctor.fleet_process": "fleet process",
|
|
702
759
|
"doctor.pid_missing": "fleet.pid not found — fleet is not running",
|
|
703
760
|
"doctor.pid_invalid": "fleet.pid is invalid",
|
|
@@ -1104,6 +1161,95 @@ const enMessages = {
|
|
|
1104
1161
|
"shortcuts.kept": "Nothing changed: the shortcuts still open {0} (user {1}).",
|
|
1105
1162
|
"shortcuts.changed_meanwhile": "Nothing changed: while you answered, the shortcuts were pointed at {0} (user {1}) instead. Run agend shortcuts again to decide.",
|
|
1106
1163
|
"shortcuts.kept_no_tty": "Nothing changed: the shortcuts open {0} (user {1}), and switching them needs a yes. Run agend shortcuts in a terminal to answer.",
|
|
1164
|
+
"settings_confirm.prompt_title": "🔒 Settings change awaiting fleet-admin confirmation",
|
|
1165
|
+
"settings_confirm.web_confirmed": "✅ Settings change confirmed from the web by {0} (web-verified)",
|
|
1166
|
+
"settings_confirm.source": "Source: {0}",
|
|
1167
|
+
"settings_confirm.requester": "Requester: {0}",
|
|
1168
|
+
"settings_confirm.outcome": "Outcome: {0}",
|
|
1169
|
+
"settings_confirm.source.web_session": "web dashboard",
|
|
1170
|
+
"settings_confirm.source.public_link": "public link",
|
|
1171
|
+
"settings_confirm.source.setup_session": "setup",
|
|
1172
|
+
"settings_confirm.confirm_button": "Confirm",
|
|
1173
|
+
"settings_confirm.reject_button": "Reject",
|
|
1174
|
+
"settings_confirm.no_longer_pending": "Settings confirmation is no longer pending.",
|
|
1175
|
+
"settings_confirm.delivery_expired": "Settings confirmation delivery expired.",
|
|
1176
|
+
"settings_confirm.applying": "Settings change is applying.",
|
|
1177
|
+
"settings_confirm.rejected_or_expired": "Settings confirmation rejected or expired.",
|
|
1178
|
+
"settings_confirm.admin_label": "fleet admin {0}",
|
|
1179
|
+
"settings_confirm.result.applied": "Change applied.",
|
|
1180
|
+
"settings_confirm.result.apply_failed": "Change could not be applied. Review the configuration and try again.",
|
|
1181
|
+
"settings_confirm.result.fleet_stopped": "Fleet stopped. Review and apply again.",
|
|
1182
|
+
"settings_confirm.result.expired": "Confirmation expired. Review and apply again.",
|
|
1183
|
+
"settings_confirm.result.withdrawn": "Change withdrawn.",
|
|
1184
|
+
"settings_confirm.result.rejected": "Change rejected.",
|
|
1185
|
+
"settings_confirm.result.request_no_longer_current": "The requesting session or fleet changed. Review and apply again.",
|
|
1186
|
+
"settings_confirm.result.settings_changed": "Settings changed since this request. Review and apply again.",
|
|
1187
|
+
"settings_confirm.summary.in_effect": "{0} (in effect)",
|
|
1188
|
+
"settings_confirm.summary.default": "default",
|
|
1189
|
+
"settings_confirm.summary.inherit": " — {0} agent(s) inherit it: {1}",
|
|
1190
|
+
"settings_confirm.summary.more": " +{0} more",
|
|
1191
|
+
"settings_confirm.summary.fingerprint": "fingerprint",
|
|
1192
|
+
"service.notify_no_unit": "its unit file is not known here",
|
|
1193
|
+
"service.notify_write_failed": "AgEnD could not write {0} ({1})",
|
|
1194
|
+
"service.notify_still_set": "it is still set after AgEnD's own drop-in (a later one wins)",
|
|
1195
|
+
"service.notify_from": " (from {0})",
|
|
1196
|
+
"service.notify_dropins": " (drop-ins: {0})",
|
|
1197
|
+
"service.notify_repaired": " ✓ {0}: NotifyAccess=all — systemd had NotifyAccess={1} loaded{2}, which refuses the fleet's ready signal and restarts it every 15 minutes (#2331)",
|
|
1198
|
+
"service.notify_refused": " ⚠ systemd loads NotifyAccess={0} for {1}{2}: the fleet's ready signal is refused, and systemd restarts it every time TimeoutStartSec runs out (15 minutes). {3}. Remove the line that sets NotifyAccess, run `{4}`, then `agend restart` (#2331).",
|
|
1199
|
+
"service.leftover_dropin": "a drop-in sets {0} (AgEnD writes none but its own {1}); keep it only if you added it on purpose",
|
|
1200
|
+
"service.leftover_user_unit": "a user unit beside the system unit {0}, which runs the fleet; this one is not used — `systemctl --user disable {1}`, then remove it",
|
|
1201
|
+
"service.leftover_old_label": "a service from before AgEnD's rename (a source build); it does not run this fleet — disable it and remove it",
|
|
1202
|
+
"qs.service_install_failed": "Could not install the service automatically ({0}).",
|
|
1203
|
+
"qs.start_direct": "Start the fleet without the service: {0} (or retry the service later: {1})",
|
|
1204
|
+
"qs.start_fleet": "Start the fleet: {0}",
|
|
1205
|
+
"import.missing_paths": "⚠️ The following paths in fleet.yaml do not exist on this device:",
|
|
1206
|
+
"import.fix_paths": "Edit {0} to fix these before running 'agend start'.",
|
|
1207
|
+
"import.paths_ok": "All paths in fleet.yaml verified.",
|
|
1208
|
+
"bugreport.since_format": "--since must be a duration such as 30m, 2h or 1d (maximum 7d)",
|
|
1209
|
+
"bugreport.since_range": "--since must be between 1m and 7d",
|
|
1210
|
+
"bugreport.not_log_file": "Not a regular log file",
|
|
1211
|
+
"bugreport.input_file": "Report input must be a regular file of at most 4 MiB.",
|
|
1212
|
+
"bugreport.digest_mismatch": "Draft changed or approval digest does not match; review and approve the exact draft again.",
|
|
1213
|
+
"bugreport.invalid_draft": "Invalid draft; collect a new report.",
|
|
1214
|
+
"bugreport.invalid_format": "Invalid draft format.",
|
|
1215
|
+
"bugreport.unredacted": "Draft contains unredacted data; collect and review again.",
|
|
1216
|
+
"bugreport.link_too_long": "Issue text exceeds the safe link limit; collect a new report.",
|
|
1217
|
+
"bugreport.review_delivery": "Delivery: {0}",
|
|
1218
|
+
"bugreport.review_title": "Issue title:",
|
|
1219
|
+
"bugreport.review_body": "Exact issue body:",
|
|
1220
|
+
"bugreport.review_file": "Exact report file (attach manually):",
|
|
1221
|
+
"bugreport.review_file_required": "Exact report file (attach manually; required for overflow):",
|
|
1222
|
+
"bugreport.submit_unclear": "Issue submission result was unclear; check GitHub before trying again.",
|
|
1223
|
+
"bugreport.approve_needs_both": "Approval requires both --draft and --approve SHA256.",
|
|
1224
|
+
"bugreport.approve_no_options": "Approval cannot change collection options; collect and review a new draft.",
|
|
1225
|
+
"bugreport.needs_attachment": "This report needs a manual attachment. Collect a link-mode draft and approve it instead.",
|
|
1226
|
+
"bugreport.inline_or_file": "Choose inline text or a text file, not both.",
|
|
1227
|
+
"bugreport.too_long": "Description/steps exceed 64 KiB; shorten them before collection.",
|
|
1228
|
+
"bugreport.requires_attachment": "Report requires a manual attachment. Collect without --submit.",
|
|
1229
|
+
"bugreport.failed": "Diagnostic collection/submission failed; no automatic retry. Check GitHub before retrying an uncertain submission.",
|
|
1230
|
+
"bugreport.next_link": "Local review snapshot: {0}\nShareable redacted report file: {1}\nNo report sent. Review the exact text above, then approve SHA256 {2}.\nTo generate the prefilled link: agend bug-report --draft <draft-file> --approve {2}\nIf you do not use GitHub, share the report Markdown file yourself. No upload is performed.",
|
|
1231
|
+
"bugreport.next_submit": "Local review snapshot: {0}\nShareable redacted report file: {1}\nNo report sent. Review the exact text above, then approve SHA256 {2}.\nTo submit with existing host gh login: agend bug-report --draft <draft-file> --approve {2} --submit\nIf you do not use GitHub, share the report Markdown file yourself. No upload is performed.",
|
|
1232
|
+
"cli.direct_refused": " ✗ --direct is for an operator's own shell, not a fleet agent session or the fleet's own commands. Nothing was started.",
|
|
1233
|
+
"cli.fleet_restart_deprecated": "⚠ `agend fleet restart` is deprecated and goes away in 2.4 — running `agend {0}`.",
|
|
1234
|
+
"cli.fleet_logs_removed": "`agend fleet logs` was removed. Use `agend logs`.",
|
|
1235
|
+
"cli.system_install_kept": " Note: the system install (v{0}) is kept; only a 2.1-era copy is retired after a move to nvm.",
|
|
1236
|
+
"cli.no_own_installer": " ℹ {0} has no installer of its own (a release from before #2264); this updater installs it.",
|
|
1237
|
+
"cli.install_activate_removed": "`agend install --activate` was removed; service activation is the default.",
|
|
1238
|
+
"cli.system_service_stopped": "Service stopped (system).",
|
|
1239
|
+
"cli.system_service_stop_failed": "Failed to stop the system service: systemctl stop agend (run it as root).",
|
|
1240
|
+
"cli.service_retry": "Check your service manager, then retry: {0}",
|
|
1241
|
+
"cli.service_direct_hint": "If the service cannot run on this host, start the fleet without it: agend fleet start --direct",
|
|
1242
|
+
"cli.service_redirect": "ℹ An AgEnD service is installed here ({0}): running `agend {1}` so the service manager owns the fleet.",
|
|
1243
|
+
"cli.instance_restarted": "Instance \"{0}\" restarted (immediate)",
|
|
1244
|
+
"cli.restart_failed": "Restart failed: {0}",
|
|
1245
|
+
"cli.fleet_unreachable": "Cannot connect to fleet (port {0}). Is the fleet running?",
|
|
1246
|
+
"cli.force_whole_service": "--force applies to the whole service, not one instance.",
|
|
1247
|
+
"cli.unit_updated": " ✓ {0}: updated {1} (#908/#1071/#1113/#2331: graceful stop, small crash dumps, bounded start, start limit, the fleet's ready signal)",
|
|
1248
|
+
"cli.schedule_trigger_removed": "`agend schedule trigger` was removed. There is no Telegram trigger; use `agend schedule enable` or the Task Board.",
|
|
1249
|
+
"settings_confirm.cli_question": "Apply this exact change? [y/N] ",
|
|
1250
|
+
"settings_confirm.cli_interactive": "Interactive confirmation required; --yes explicitly confirms the printed diff.",
|
|
1251
|
+
"settings_confirm.web_verified_label": "{0} (web-verified)",
|
|
1252
|
+
"settings_confirm.host_operator": "host operator",
|
|
1107
1253
|
};
|
|
1108
1254
|
const zhTWMessages = {
|
|
1109
1255
|
"setup.admin.cancelled": "設定已取消,未選取管理員。",
|
|
@@ -1237,6 +1383,12 @@ const zhTWMessages = {
|
|
|
1237
1383
|
"dashboard.progress.fail.no-address": "Cloudflare 沒有及時給出公開網址",
|
|
1238
1384
|
"dashboard.progress.fail.rate-limited": "Cloudflare 正在限制這台機器建立新的臨時連結 — 請過一陣子再試;這台機器上的 dashboard 仍可使用",
|
|
1239
1385
|
"dashboard.progress.fail.provisioning-failed": "Cloudflare 目前拒絕建立臨時連結 — 請稍後再試;這台機器上的 dashboard 仍可使用",
|
|
1386
|
+
"dashboard.progress.fail.named-auth-failed": "固定 tunnel 的 token 被拒絕 — 請在 Cloudflare 只複製 connector token,重新設定",
|
|
1387
|
+
"dashboard.progress.fail.named-route-missing": "固定網域沒有連到公開應用程式 — 請檢查這個 tunnel 的網域、DNS 與公開應用程式路由",
|
|
1388
|
+
"dashboard.progress.fail.named-hostname-mismatch": "固定網域傳回了其他頁面 — 請把公開應用程式指向 AgEnD 的來源網址",
|
|
1389
|
+
"dashboard.progress.fail.named-origin-unreachable": "Cloudflare 無法連到本機來源 — 請檢查公開應用程式的來源網址與連接埠",
|
|
1390
|
+
"dashboard.progress.fail.named-connection-failed": "固定 tunnel 無法連上 Cloudflare — 請檢查網路、DNS 與防火牆後重試",
|
|
1391
|
+
"dashboard.progress.fail.origin-port-in-use": "固定 tunnel 的本機來源連接埠已被占用 — 請關閉衝突的程式,或選擇其他來源連接埠並更新 Cloudflare 路由",
|
|
1240
1392
|
"dashboard.progress.fail.process-exited": "cloudflared 在給出公開網址前就停止了",
|
|
1241
1393
|
"dashboard.progress.fail.bad-address": "Cloudflare 給出的網址 AgEnD 無法使用",
|
|
1242
1394
|
"dashboard.progress.fail.unreachable": "公開網址一直連不到這個 fleet",
|
|
@@ -1262,6 +1414,7 @@ const zhTWMessages = {
|
|
|
1262
1414
|
"dashboard.code": "• 登入碼: {0}(只能用一次,{1} 分鐘內有效)",
|
|
1263
1415
|
"dashboard.menu_instruction": "按登入按鈕,取得僅傳給你的連結和登入碼。",
|
|
1264
1416
|
"dashboard.code_help": "請勿轉傳登入碼。/web revoke 可登出所有瀏覽器並關閉公開連結。",
|
|
1417
|
+
"dashboard.deprecated": "`/dashboard` 已棄用。請用 `/web`。",
|
|
1265
1418
|
"dashboard.revoked": "🔒 已登出 {0} 個網頁 session,並作廢尚未使用的登入碼。",
|
|
1266
1419
|
"dashboard.revoked_not_durable": "⚠️ 目前已登出 {0} 個網頁 session,但這個變更「無法保存」:~/.agend/web-sessions.json 無法更新也無法刪除,fleet 重啟後這些 session 可能會復活。請修正該檔權限後再執行一次 /web revoke,或用 agend web-token rotate 換掉 token。",
|
|
1267
1420
|
"web.login_notice": "🔐 有新的網頁登入:{0}({1},session {2})。如果不是你,請傳 /web revoke。",
|
|
@@ -1288,6 +1441,9 @@ const zhTWMessages = {
|
|
|
1288
1441
|
"update.available_stable": "🆕 AgEnD {0}(穩定版)已推出(目前:{1},預覽版)。/update 會留在目前的預覽版線;要切換到穩定版請執行:agend update --stable",
|
|
1289
1442
|
"update.highlights": "更新重點:{0}",
|
|
1290
1443
|
"needs.live_header": "📥 等你處理 — {0}",
|
|
1444
|
+
"needs.live_header_lane": "📥 這裡等你處理 — {0}",
|
|
1445
|
+
"needs.live_moved": "這份清單已移走:這些卡片改在別的頻道等你處理(專案負責人或派出卡片的 instance 有變動)。",
|
|
1446
|
+
"needs.task_moved": "這張卡片的按鈕已移到另一個頻道。",
|
|
1291
1447
|
"needs.live_more": "…還有 {0} 項:請開 /ui",
|
|
1292
1448
|
"needs.live_empty": "✅ 目前沒有需要你處理的事。",
|
|
1293
1449
|
"needs.live_stopped": "⏹ Fleet 已停止。啟動後這份清單會繼續更新。",
|
|
@@ -1311,6 +1467,45 @@ const zhTWMessages = {
|
|
|
1311
1467
|
"needs.reason.crashed": "已崩潰",
|
|
1312
1468
|
"needs.reason.delivery_uncertain": "無法確認是否送達",
|
|
1313
1469
|
"needs.reason.delivery_failed": "傳送失敗",
|
|
1470
|
+
"needs.reason.task_review": "等你確認",
|
|
1471
|
+
"needs.reason.task_blocked": "卡住,在問你",
|
|
1472
|
+
"needs.task_gap": "還沒補齊:{0}",
|
|
1473
|
+
"needs.task_gap_unchecked": "還有 {0} 項沒勾",
|
|
1474
|
+
"needs.task_gap_no_result": "沒有產出總結",
|
|
1475
|
+
"needs.task_gap_join": "、",
|
|
1476
|
+
"needs.task_confirm_button": "✅ 確認 {0}",
|
|
1477
|
+
"needs.task_back_button": "↩️ 退回 {0}",
|
|
1478
|
+
"needs.task_answer_button": "💬 回覆 {0}",
|
|
1479
|
+
"needs.task_reply_asked": "請回覆我剛發的那則訊息。",
|
|
1480
|
+
"needs.task_reply_already": "已經在等你回覆 {0} 的那則提示了:回覆那一則就好。",
|
|
1481
|
+
"needs.task_reply_busy": "等回覆的提示太多了,請過幾分鐘再試。",
|
|
1482
|
+
"needs.task_back_prompt": "↩️ 退回 {0}{1}:請回覆這則訊息,寫下要改什麼({2} 分鐘內)。",
|
|
1483
|
+
"needs.task_answer_prompt": "💬 回覆 {0}{1}:請回覆這則訊息,寫下你的答案({2} 分鐘內),卡片會改回進行中。",
|
|
1484
|
+
"needs.task_reply_empty": "沒有寫內容:{0} 沒有變動。",
|
|
1485
|
+
"needs.task_board_closed": "任務看板沒有開啟。",
|
|
1486
|
+
"needs.task_confirmed": "✅ 已確認 {0}。",
|
|
1487
|
+
"needs.task_sent_back": "↩️ 已退回 {0},負責人會看到原因。",
|
|
1488
|
+
"needs.task_answered": "💬 已回覆 {0},卡片改回進行中。",
|
|
1489
|
+
"needs.task_changed": "{0} 在這之間被改過了:清單會更新,請用新的那則。",
|
|
1490
|
+
"needs.task_refused": "{0}:{1}",
|
|
1491
|
+
// #2246 step 3:任務看板的每日摘要(task-board-summary.ts)
|
|
1492
|
+
"board_summary.title": "📋 任務看板每日摘要 {0} – {1}",
|
|
1493
|
+
"board_summary.card": "{0}「{1}」",
|
|
1494
|
+
"board_summary.review": "等你確認({0})",
|
|
1495
|
+
"board_summary.blocked": "卡住({0})",
|
|
1496
|
+
"board_summary.done": "完成({0})",
|
|
1497
|
+
"board_summary.created": "新開({0})",
|
|
1498
|
+
"board_summary.projects": "專案進度",
|
|
1499
|
+
"board_summary.more": "…還有 {0} 張",
|
|
1500
|
+
"board_summary.subs": "子任務 {0} 張:{1}",
|
|
1501
|
+
"board_summary.subs_more": "子任務 {0} 張:{1} 等",
|
|
1502
|
+
"board_summary.reason": ":{0}",
|
|
1503
|
+
"board_summary.join": "、",
|
|
1504
|
+
"board_summary.project": "{0} {1}%({2}/{3})",
|
|
1505
|
+
"board_summary.project_extra": ",{0}",
|
|
1506
|
+
"board_summary.project_waiting": "等你確認 {0}",
|
|
1507
|
+
"board_summary.project_blocked": "卡住 {0}",
|
|
1508
|
+
"board_summary.footer": "看板:網頁的 Fleet › Tasks。",
|
|
1314
1509
|
"upgrade.web_chat": "🆕 AgEnD 2.2:新增網頁聊天,這裡也照常使用。\n管理員:在 General 傳 /web,再按登入按鈕取碼。",
|
|
1315
1510
|
"dashboard.remote_hint": "📱 這些連結只能在 Fleet 所在的那台電腦上開。要用手機或其他電腦開網頁聊天:{0}",
|
|
1316
1511
|
"fleet.ready": "Fleet 就緒。{0}/{1} 個 Agent 運行中。v{2}",
|
|
@@ -1348,6 +1543,8 @@ const zhTWMessages = {
|
|
|
1348
1543
|
"inst.backend_launch_warning": "⚠️ {0}:{1}",
|
|
1349
1544
|
"codex.status_line_unverifiable": "AgEnD 無法替這個 Codex instance 的 status_line 加上 Context 項目({0})。就緒判斷會改依設定的 footer 與 10 秒畫面穩定檢查,較慢但會往安全方向判斷。請在 {1} 的 [tui] status_line 加上 \"context-remaining\",以恢復一般的判斷。",
|
|
1350
1545
|
"codex.resume_db_unreadable_fresh": "讀不到 Codex 的 session 資料庫({0})。同一個 git repo 裡還有其他 Codex instance,所以這次啟動改開**新對話**,不用 `codex resume --last`(它可能會拿到那個 instance 的 session)。舊對話都還在,需要的話可以用 `codex resume <id>` 手動接回。",
|
|
1546
|
+
"codex.package_companion_missing": "Codex 安裝不完整 — codex 執行檔旁({1}/bin)缺少 `{0}`;請用完整的官方套件重新安裝 Codex",
|
|
1547
|
+
"codex.package_companion_not_executable": "Codex 安裝不完整 — codex 執行檔旁({1}/bin)的 `{0}` 無法執行;請用完整的官方套件重新安裝 Codex",
|
|
1351
1548
|
"codex.resume_db_unreadable_last": "讀不到 Codex 的 session 資料庫({0})。這個 repo 裡沒有其他 Codex instance,所以這次啟動退回用 `codex resume --last`。",
|
|
1352
1549
|
"codex.resume_none_but_history": "找不到 {0} 可自動接續的 Codex 對話,所以這次啟動開了**新對話**。這個工作目錄其實有之前的對話({1}),它還在,可用 `codex resume {1}` 接回。",
|
|
1353
1550
|
"inst.dialog_parked_hold": "⚠️ {0} 停在一個 AgEnD 認不準、因此**不會**自動回答的 CLI 對話框上({1})。請到它的 pane **先看清楚再按鍵**:游標可能已經在不同的選項上。若是 Claude 的 session-resume 提示,請把游標移到「Resume full session as-is」再確認;除非你要丟掉完整 context,否則絕不要確認「Resume from summary」。對話框消失前,送給這個 instance 的訊息會先保留。",
|
|
@@ -1546,7 +1743,7 @@ const zhTWMessages = {
|
|
|
1546
1743
|
"slash.chat": "傳送訊息給 Agent",
|
|
1547
1744
|
"slash.ctx": "顯示 Context 使用量",
|
|
1548
1745
|
"slash.cancel": "中斷 Agent 目前的動作(送出 Escape)",
|
|
1549
|
-
"slash.dashboard": "/web
|
|
1746
|
+
"slash.dashboard": "已棄用 — 請用 /web",
|
|
1550
1747
|
"slash.web": "登入網頁儀表板與網頁聊天(管理員)",
|
|
1551
1748
|
"slash.compact": "壓縮 Agent 的 Context",
|
|
1552
1749
|
"slash.compact_arg": "[選填:摘要重點,僅 Claude Code]",
|
|
@@ -1567,7 +1764,7 @@ const zhTWMessages = {
|
|
|
1567
1764
|
"login.profile_host_only": "{0} 的 profile 目前要在主機上登入,請在主機執行:\n`{2}`\n({0} 暫時還不能從聊天室用 `/login {0} {1}` 登入。)",
|
|
1568
1765
|
"login.profile_unsupported": "{0} 沒有 credential profile:請用 `/login {0}` 登入它的帳號。",
|
|
1569
1766
|
"login.profile_needs_backend": "指定 profile 時也要指定 backend:`/login backend:claude-code profile:<名稱>`。",
|
|
1570
|
-
"login.install_cli_moved": "
|
|
1767
|
+
"login.install_cli_moved": "`/install-cli` 已移除。請用 `/login`。",
|
|
1571
1768
|
"login.install_by_name": "尚未安裝,選單也不提供——`/login {0}` 可以安裝它。",
|
|
1572
1769
|
"login.choose_backend": "要重新登入哪個 Backend?",
|
|
1573
1770
|
"fleet.label_line": "🖥 Fleet:{0}",
|
|
@@ -1772,6 +1969,8 @@ const zhTWMessages = {
|
|
|
1772
1969
|
"doctor.backend_unknown": "未知 Backend",
|
|
1773
1970
|
"doctor.binary_available": "可使用 {0}",
|
|
1774
1971
|
"doctor.binary_missing": "找不到 {0}",
|
|
1972
|
+
"doctor.codex_package": "Codex 套件",
|
|
1973
|
+
"doctor.codex_package_ok": "完整({0})",
|
|
1775
1974
|
"doctor.not_found": "找不到",
|
|
1776
1975
|
"doctor.term_unset": "未設定 — TUI 顯示可能失敗",
|
|
1777
1976
|
"doctor.network_family": "網路位址族群",
|
|
@@ -1790,6 +1989,10 @@ const zhTWMessages = {
|
|
|
1790
1989
|
"doctor.inactive_start": "未執行 — 請執行:agend start",
|
|
1791
1990
|
"doctor.dbus_set": "已設定 DBUS_SESSION_BUS_ADDRESS",
|
|
1792
1991
|
"doctor.dbus_unset": "未設定 DBUS_SESSION_BUS_ADDRESS — systemd --user 可能無法運作",
|
|
1992
|
+
"doctor.loaded_unit": "已載入的 unit",
|
|
1993
|
+
"doctor.notify_refused": "systemd 會拒收 fleet 的就緒訊號,每次啟動逾時(15 分鐘)就重啟它;執行 `agend restart` 會修好(#2331)",
|
|
1994
|
+
"doctor.unit_files": "Unit 檔案",
|
|
1995
|
+
"doctor.leftover": "殘留設定",
|
|
1793
1996
|
"doctor.fleet_process": "Fleet process",
|
|
1794
1997
|
"doctor.pid_missing": "找不到 fleet.pid — Fleet 未在執行",
|
|
1795
1998
|
"doctor.pid_invalid": "fleet.pid 無效",
|
|
@@ -2194,6 +2397,95 @@ const zhTWMessages = {
|
|
|
2194
2397
|
"shortcuts.kept": "沒有改動:捷徑仍然打開 {0}(使用者 {1})。",
|
|
2195
2398
|
"shortcuts.changed_meanwhile": "沒有改動:你回答的時候,捷徑已經被改成打開 {0}(使用者 {1})。請再執行一次 agend shortcuts 重新決定。",
|
|
2196
2399
|
"shortcuts.kept_no_tty": "沒有改動:捷徑打開的是 {0}(使用者 {1}),要切換必須先回答「是」。請在終端機裡執行 agend shortcuts 來回答。",
|
|
2400
|
+
"settings_confirm.prompt_title": "🔒 設定變更等待 fleet 管理員確認",
|
|
2401
|
+
"settings_confirm.web_confirmed": "✅ {0} 已在網頁確認設定變更(網頁驗證)",
|
|
2402
|
+
"settings_confirm.source": "來源:{0}",
|
|
2403
|
+
"settings_confirm.requester": "提出者:{0}",
|
|
2404
|
+
"settings_confirm.outcome": "結果:{0}",
|
|
2405
|
+
"settings_confirm.source.web_session": "網頁儀表板",
|
|
2406
|
+
"settings_confirm.source.public_link": "公開連結",
|
|
2407
|
+
"settings_confirm.source.setup_session": "設定精靈",
|
|
2408
|
+
"settings_confirm.confirm_button": "確認",
|
|
2409
|
+
"settings_confirm.reject_button": "拒絕",
|
|
2410
|
+
"settings_confirm.no_longer_pending": "這個設定確認已不在等待中。",
|
|
2411
|
+
"settings_confirm.delivery_expired": "設定確認的傳送已逾時。",
|
|
2412
|
+
"settings_confirm.applying": "設定變更正在套用。",
|
|
2413
|
+
"settings_confirm.rejected_or_expired": "設定確認已被拒絕或已過期。",
|
|
2414
|
+
"settings_confirm.admin_label": "fleet 管理員 {0}",
|
|
2415
|
+
"settings_confirm.result.applied": "變更已套用。",
|
|
2416
|
+
"settings_confirm.result.apply_failed": "變更無法套用。請檢查設定後再試一次。",
|
|
2417
|
+
"settings_confirm.result.fleet_stopped": "Fleet 已停止。請重新檢查後再套用。",
|
|
2418
|
+
"settings_confirm.result.expired": "確認已過期。請重新檢查後再套用。",
|
|
2419
|
+
"settings_confirm.result.withdrawn": "變更已撤回。",
|
|
2420
|
+
"settings_confirm.result.rejected": "變更已被拒絕。",
|
|
2421
|
+
"settings_confirm.result.request_no_longer_current": "提出請求的工作階段或 fleet 已改變。請重新檢查後再套用。",
|
|
2422
|
+
"settings_confirm.result.settings_changed": "提出請求後設定已被修改。請重新檢查後再套用。",
|
|
2423
|
+
"settings_confirm.summary.in_effect": "{0}(實際生效)",
|
|
2424
|
+
"settings_confirm.summary.default": "預設",
|
|
2425
|
+
"settings_confirm.summary.inherit": " — {0} 個 agent 繼承此設定:{1}",
|
|
2426
|
+
"settings_confirm.summary.more": " 等另外 {0} 個",
|
|
2427
|
+
"settings_confirm.summary.fingerprint": "指紋",
|
|
2428
|
+
"service.notify_no_unit": "這裡不知道它的 unit 檔在哪裡",
|
|
2429
|
+
"service.notify_write_failed": "AgEnD 無法寫入 {0}({1})",
|
|
2430
|
+
"service.notify_still_set": "AgEnD 自己的 drop-in 之後它仍然被設定(較後面的設定優先)",
|
|
2431
|
+
"service.notify_from": "(來自 {0})",
|
|
2432
|
+
"service.notify_dropins": "(drop-in:{0})",
|
|
2433
|
+
"service.notify_repaired": " ✓ {0}:NotifyAccess=all —— systemd 先前載入的是 NotifyAccess={1}{2},它會拒絕 fleet 的就緒訊號,每 15 分鐘重新啟動一次(#2331)",
|
|
2434
|
+
"service.notify_refused": " ⚠ systemd 為 {1} 載入了 NotifyAccess={0}{2}:fleet 的就緒訊號會被拒絕,每次 TimeoutStartSec 用完(15 分鐘)systemd 就會重新啟動它。{3}。請刪除設定 NotifyAccess 的那一行,執行 `{4}`,再執行 `agend restart`(#2331)。",
|
|
2435
|
+
"service.leftover_dropin": "有個 drop-in 設定了 {0}(AgEnD 只會寫入它自己的 {1});只有在你是刻意加上的時候才保留",
|
|
2436
|
+
"service.leftover_user_unit": "系統 unit {0} 旁邊還有一個使用者 unit;fleet 由系統 unit 執行,這個沒有使用 —— 請執行 `systemctl --user disable {1}` 後刪除它",
|
|
2437
|
+
"service.leftover_old_label": "這是 AgEnD 改名前的服務(從原始碼建置的);它不會執行這個 fleet —— 請停用並刪除它",
|
|
2438
|
+
"qs.service_install_failed": "無法自動安裝服務({0})。",
|
|
2439
|
+
"qs.start_direct": "不透過服務啟動 fleet:{0}(或稍後再試一次服務:{1})",
|
|
2440
|
+
"qs.start_fleet": "啟動 fleet:{0}",
|
|
2441
|
+
"import.missing_paths": "⚠️ fleet.yaml 中的下列路徑在這台裝置上不存在:",
|
|
2442
|
+
"import.fix_paths": "執行 'agend start' 之前,請先編輯 {0} 修正這些路徑。",
|
|
2443
|
+
"import.paths_ok": "fleet.yaml 中的所有路徑都已確認。",
|
|
2444
|
+
"bugreport.since_format": "--since 必須是像 30m、2h 或 1d 這樣的時間長度(最多 7d)",
|
|
2445
|
+
"bugreport.since_range": "--since 必須介於 1m 到 7d 之間",
|
|
2446
|
+
"bugreport.not_log_file": "不是一般的記錄檔",
|
|
2447
|
+
"bugreport.input_file": "回報內容必須是一般檔案,最多 4 MiB。",
|
|
2448
|
+
"bugreport.digest_mismatch": "草稿已變更,或核准的摘要值不相符;請重新檢查並核准完全相同的草稿。",
|
|
2449
|
+
"bugreport.invalid_draft": "草稿無效;請重新收集一份回報。",
|
|
2450
|
+
"bugreport.invalid_format": "草稿格式無效。",
|
|
2451
|
+
"bugreport.unredacted": "草稿含有未遮蔽的資料;請重新收集並檢查。",
|
|
2452
|
+
"bugreport.link_too_long": "Issue 內容超過連結的安全長度上限;請重新收集一份回報。",
|
|
2453
|
+
"bugreport.review_delivery": "傳送方式:{0}",
|
|
2454
|
+
"bugreport.review_title": "Issue 標題:",
|
|
2455
|
+
"bugreport.review_body": "Issue 內文(原文):",
|
|
2456
|
+
"bugreport.review_file": "回報檔案(原文,請手動附加):",
|
|
2457
|
+
"bugreport.review_file_required": "回報檔案(原文,請手動附加;內容過長時必須附加):",
|
|
2458
|
+
"bugreport.submit_unclear": "Issue 提交的結果不明確;再試之前請先到 GitHub 確認。",
|
|
2459
|
+
"bugreport.approve_needs_both": "核准需要同時提供 --draft 與 --approve SHA256。",
|
|
2460
|
+
"bugreport.approve_no_options": "核准時不能變更收集選項;請重新收集並檢查新的草稿。",
|
|
2461
|
+
"bugreport.needs_attachment": "這份回報需要手動附加檔案。請改為收集連結模式的草稿再核准。",
|
|
2462
|
+
"bugreport.inline_or_file": "請擇一使用直接輸入的文字或文字檔,不要兩者都用。",
|
|
2463
|
+
"bugreport.too_long": "描述/步驟超過 64 KiB;請先縮短再收集。",
|
|
2464
|
+
"bugreport.requires_attachment": "這份回報需要手動附加檔案。請不要加 --submit 再收集一次。",
|
|
2465
|
+
"bugreport.failed": "診斷資料的收集/提交失敗,不會自動重試。結果不確定時,再試之前請先到 GitHub 確認。",
|
|
2466
|
+
"bugreport.next_link": "本機檢查快照:{0}\n可分享的已遮蔽回報檔:{1}\n沒有送出任何回報。請檢查上面的完整內容,再核准 SHA256 {2}。\n要產生預填連結:agend bug-report --draft <draft-file> --approve {2}\n如果你不使用 GitHub,請自行分享這份回報的 Markdown 檔。不會上傳任何東西。",
|
|
2467
|
+
"bugreport.next_submit": "本機檢查快照:{0}\n可分享的已遮蔽回報檔:{1}\n沒有送出任何回報。請檢查上面的完整內容,再核准 SHA256 {2}。\n要用主機上現有的 gh 登入提交:agend bug-report --draft <draft-file> --approve {2} --submit\n如果你不使用 GitHub,請自行分享這份回報的 Markdown 檔。不會上傳任何東西。",
|
|
2468
|
+
"cli.direct_refused": " ✗ --direct 只能在操作者自己的 shell 使用,不能在 fleet 的 agent 工作階段或 fleet 自己的指令中使用。沒有啟動任何東西。",
|
|
2469
|
+
"cli.fleet_restart_deprecated": "⚠ `agend fleet restart` 已棄用,將在 2.4 移除 —— 改為執行 `agend {0}`。",
|
|
2470
|
+
"cli.fleet_logs_removed": "`agend fleet logs` 已移除,請改用 `agend logs`。",
|
|
2471
|
+
"cli.system_install_kept": " 注意:系統安裝的版本(v{0})會保留;只有改用 nvm 後的 2.1 時期副本會被移除。",
|
|
2472
|
+
"cli.no_own_installer": " ℹ {0} 沒有自己的安裝程式(#2264 之前的版本);由這個更新程式安裝。",
|
|
2473
|
+
"cli.install_activate_removed": "`agend install --activate` 已移除;現在預設就會啟用服務。",
|
|
2474
|
+
"cli.system_service_stopped": "服務已停止(系統)。",
|
|
2475
|
+
"cli.system_service_stop_failed": "無法停止系統服務:請以 root 執行 systemctl stop agend。",
|
|
2476
|
+
"cli.service_retry": "請檢查服務管理員後再試:{0}",
|
|
2477
|
+
"cli.service_direct_hint": "如果這台主機無法執行服務,可以不透過服務啟動 fleet:agend fleet start --direct",
|
|
2478
|
+
"cli.service_redirect": "ℹ 這台主機已安裝 AgEnD 服務({0}):改為執行 `agend {1}`,讓服務管理員管理 fleet。",
|
|
2479
|
+
"cli.instance_restarted": "Instance「{0}」已重新啟動(立即)",
|
|
2480
|
+
"cli.restart_failed": "重新啟動失敗:{0}",
|
|
2481
|
+
"cli.fleet_unreachable": "無法連線到 fleet(port {0})。fleet 有在執行嗎?",
|
|
2482
|
+
"cli.force_whole_service": "--force 只適用於整個服務,不能用於單一 instance。",
|
|
2483
|
+
"cli.unit_updated": " ✓ {0}:已更新 {1}(#908/#1071/#1113/#2331:平順停止、小型 crash dump、有上限的啟動、啟動次數限制、fleet 的就緒訊號)",
|
|
2484
|
+
"cli.schedule_trigger_removed": "`agend schedule trigger` 已移除。沒有 Telegram 觸發方式;請改用 `agend schedule enable` 或看板(Task Board)。",
|
|
2485
|
+
"settings_confirm.cli_question": "要套用這個變更嗎?[y/N] ",
|
|
2486
|
+
"settings_confirm.cli_interactive": "需要互動確認;--yes 表示明確確認上面列出的差異。",
|
|
2487
|
+
"settings_confirm.web_verified_label": "{0}(網頁驗證)",
|
|
2488
|
+
"settings_confirm.host_operator": "主機操作者",
|
|
2197
2489
|
};
|
|
2198
2490
|
const messages = {
|
|
2199
2491
|
en: enMessages,
|