@songsid/agend 2.3.5-alpha.2 → 2.3.5-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/dist/agend-home.d.ts +13 -0
  2. package/dist/agend-home.js +42 -0
  3. package/dist/agend-home.js.map +1 -1
  4. package/dist/auth-api.d.ts +21 -0
  5. package/dist/auth-api.js +91 -4
  6. package/dist/auth-api.js.map +1 -1
  7. package/dist/authority/web-authority.d.ts +12 -2
  8. package/dist/authority/web-authority.js +25 -4
  9. package/dist/authority/web-authority.js.map +1 -1
  10. package/dist/backend/claude-code.js +16 -1
  11. package/dist/backend/claude-code.js.map +1 -1
  12. package/dist/backend/codex.js +11 -1
  13. package/dist/backend/codex.js.map +1 -1
  14. package/dist/backend/kiro-identity.d.ts +2 -0
  15. package/dist/backend/kiro-identity.js +13 -6
  16. package/dist/backend/kiro-identity.js.map +1 -1
  17. package/dist/backend/kiro.js +18 -3
  18. package/dist/backend/kiro.js.map +1 -1
  19. package/dist/backend-availability.d.ts +6 -0
  20. package/dist/backend-availability.js +13 -5
  21. package/dist/backend-availability.js.map +1 -1
  22. package/dist/channel/mcp-tools.js +1 -1
  23. package/dist/channel/mcp-tools.js.map +1 -1
  24. package/dist/cli.js +6 -9
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config-validator.js +12 -1
  27. package/dist/config-validator.js.map +1 -1
  28. package/dist/daemon.d.ts +5 -0
  29. package/dist/daemon.js +107 -30
  30. package/dist/daemon.js.map +1 -1
  31. package/dist/fleet-manager.d.ts +143 -8
  32. package/dist/fleet-manager.js +874 -166
  33. package/dist/fleet-manager.js.map +1 -1
  34. package/dist/fleet-windows-runtime.js +7 -0
  35. package/dist/fleet-windows-runtime.js.map +1 -1
  36. package/dist/fleet-yaml-patch.d.ts +3 -0
  37. package/dist/fleet-yaml-patch.js +103 -0
  38. package/dist/fleet-yaml-patch.js.map +1 -0
  39. package/dist/general-binding.d.ts +85 -0
  40. package/dist/general-binding.js +298 -0
  41. package/dist/general-binding.js.map +1 -0
  42. package/dist/general-host-owner.d.ts +8 -0
  43. package/dist/general-host-owner.js +26 -0
  44. package/dist/general-host-owner.js.map +1 -0
  45. package/dist/general-instance.d.ts +7 -0
  46. package/dist/general-instance.js +20 -3
  47. package/dist/general-instance.js.map +1 -1
  48. package/dist/general-knowledge/skills/model-discovery/SKILL.md +2 -0
  49. package/dist/general-role.d.ts +5 -0
  50. package/dist/general-role.js +26 -0
  51. package/dist/general-role.js.map +1 -0
  52. package/dist/instance-lifecycle.d.ts +1 -0
  53. package/dist/instance-lifecycle.js +26 -4
  54. package/dist/instance-lifecycle.js.map +1 -1
  55. package/dist/instructions.d.ts +2 -0
  56. package/dist/instructions.js +6 -0
  57. package/dist/instructions.js.map +1 -1
  58. package/dist/kiro-resume-summary.d.ts +37 -0
  59. package/dist/kiro-resume-summary.js +85 -0
  60. package/dist/kiro-resume-summary.js.map +1 -0
  61. package/dist/locale.js +59 -0
  62. package/dist/locale.js.map +1 -1
  63. package/dist/login-controller.js +9 -1
  64. package/dist/login-controller.js.map +1 -1
  65. package/dist/native-pane-lifecycle.js +4 -1
  66. package/dist/native-pane-lifecycle.js.map +1 -1
  67. package/dist/native-pane-manager.d.ts +1 -0
  68. package/dist/native-pane-manager.js +23 -2
  69. package/dist/native-pane-manager.js.map +1 -1
  70. package/dist/needs-you-hub.js +1 -1
  71. package/dist/needs-you-hub.js.map +1 -1
  72. package/dist/needs-you.d.ts +8 -1
  73. package/dist/needs-you.js +5 -2
  74. package/dist/needs-you.js.map +1 -1
  75. package/dist/package-preimage.js +27 -2
  76. package/dist/package-preimage.js.map +1 -1
  77. package/dist/pane-port.d.ts +11 -0
  78. package/dist/public-web-gateway.js +9 -0
  79. package/dist/public-web-gateway.js.map +1 -1
  80. package/dist/public-web-link.d.ts +5 -0
  81. package/dist/public-web-link.js +4 -0
  82. package/dist/public-web-link.js.map +1 -1
  83. package/dist/quickstart-api.js +9 -5
  84. package/dist/quickstart-api.js.map +1 -1
  85. package/dist/quickstart.d.ts +1 -0
  86. package/dist/quickstart.js +4 -1
  87. package/dist/quickstart.js.map +1 -1
  88. package/dist/reply-buttons-controller.js +10 -0
  89. package/dist/reply-buttons-controller.js.map +1 -1
  90. package/dist/runtime-bundle.js +3 -0
  91. package/dist/runtime-bundle.js.map +1 -1
  92. package/dist/runtime-general-protocol.d.ts +22 -0
  93. package/dist/runtime-general-protocol.js +57 -0
  94. package/dist/runtime-general-protocol.js.map +1 -0
  95. package/dist/runtime-general-workspace.d.ts +17 -0
  96. package/dist/runtime-general-workspace.js +213 -0
  97. package/dist/runtime-general-workspace.js.map +1 -0
  98. package/dist/runtime-pane-assets.d.ts +1 -1
  99. package/dist/runtime-pane-assets.js +1 -1
  100. package/dist/runtime-pane-assets.js.map +1 -1
  101. package/dist/runtime-pane-host.d.ts +1 -0
  102. package/dist/runtime-pane-host.js +22 -1
  103. package/dist/runtime-pane-host.js.map +1 -1
  104. package/dist/runtime-pane-mcp.d.ts +8 -0
  105. package/dist/runtime-pane-mcp.js +15 -2
  106. package/dist/runtime-pane-mcp.js.map +1 -1
  107. package/dist/runtime-pane-port.d.ts +6 -1
  108. package/dist/runtime-pane-port.js +21 -0
  109. package/dist/runtime-pane-port.js.map +1 -1
  110. package/dist/runtime-pane-protocol.d.ts +4 -1
  111. package/dist/runtime-pane-protocol.js +7 -1
  112. package/dist/runtime-pane-protocol.js.map +1 -1
  113. package/dist/settings-api.d.ts +5 -0
  114. package/dist/settings-api.js +37 -1
  115. package/dist/settings-api.js.map +1 -1
  116. package/dist/settings-baseline.d.ts +1 -0
  117. package/dist/settings-baseline.js +1 -1
  118. package/dist/settings-baseline.js.map +1 -1
  119. package/dist/settings-confirmation.d.ts +1 -0
  120. package/dist/settings-confirmation.js +1 -0
  121. package/dist/settings-confirmation.js.map +1 -1
  122. package/dist/settings-effect.d.ts +4 -0
  123. package/dist/settings-effect.js +35 -0
  124. package/dist/settings-effect.js.map +1 -1
  125. package/dist/settings-http-confirmation.d.ts +1 -0
  126. package/dist/settings-http-confirmation.js +4 -0
  127. package/dist/settings-http-confirmation.js.map +1 -1
  128. package/dist/settings-request-capability.d.ts +2 -0
  129. package/dist/settings-request-capability.js +4 -0
  130. package/dist/settings-request-capability.js.map +1 -1
  131. package/dist/settings-route-lifetime.d.ts +14 -0
  132. package/dist/settings-route-lifetime.js +48 -0
  133. package/dist/settings-route-lifetime.js.map +1 -0
  134. package/dist/settings-transaction.d.ts +4 -0
  135. package/dist/settings-transaction.js +9 -0
  136. package/dist/settings-transaction.js.map +1 -1
  137. package/dist/setup-form.js +6 -3
  138. package/dist/setup-form.js.map +1 -1
  139. package/dist/setup-i18n.js +3 -0
  140. package/dist/setup-i18n.js.map +1 -1
  141. package/dist/stall-reporter.d.ts +21 -0
  142. package/dist/stall-reporter.js +82 -0
  143. package/dist/stall-reporter.js.map +1 -0
  144. package/dist/tmux-control.d.ts +2 -2
  145. package/dist/tmux-control.js +4 -2
  146. package/dist/tmux-control.js.map +1 -1
  147. package/dist/tmux-exec-helper.d.ts +6 -3
  148. package/dist/tmux-exec-helper.js +115 -53
  149. package/dist/tmux-exec-helper.js.map +1 -1
  150. package/dist/tool-permissions.js +2 -1
  151. package/dist/tool-permissions.js.map +1 -1
  152. package/dist/tunnel/cloudflared-install.d.ts +4 -0
  153. package/dist/tunnel/cloudflared-install.js +20 -1
  154. package/dist/tunnel/cloudflared-install.js.map +1 -1
  155. package/dist/tunnel/cloudflared.d.ts +8 -1
  156. package/dist/tunnel/cloudflared.js +34 -6
  157. package/dist/tunnel/cloudflared.js.map +1 -1
  158. package/dist/tunnel/lease.d.ts +3 -3
  159. package/dist/tunnel/lease.js +23 -19
  160. package/dist/tunnel/lease.js.map +1 -1
  161. package/dist/tunnel/manager.js +6 -7
  162. package/dist/tunnel/manager.js.map +1 -1
  163. package/dist/types.d.ts +2 -0
  164. package/dist/ui/agent-proposals.js +2 -2
  165. package/dist/ui/general-location.js +71 -0
  166. package/dist/ui/native-pane-recovery.js +1 -1
  167. package/dist/ui/panel-chat.js +2 -0
  168. package/dist/ui/panel-needs.js +2 -0
  169. package/dist/ui/panel-settings.js +5 -1
  170. package/dist/ui/settings-dialogs.js +8 -2
  171. package/dist/ui/settings-model.js +2 -1
  172. package/dist/ui/settings-outside.js +176 -0
  173. package/dist/ui/settings-registry.js +1 -0
  174. package/dist/ui/settings-strings.js +2 -0
  175. package/dist/ui/shared/app-i18n.js +2 -2
  176. package/dist/ui/shared/app.css +16 -1
  177. package/dist/ui/shared/instance-nav.js +13 -3
  178. package/dist/ui/shared/panel-view.js +266 -17
  179. package/dist/ui/shared/qrcode.module.js +2237 -0
  180. package/dist/ui/shared/signin.js +39 -5
  181. package/dist/ui/shared/vendor/qrcode-generator.LICENSE +27 -0
  182. package/dist/ui/shared/vendor/vendor.json +19 -2
  183. package/dist/ui/shared/view-strings.js +28 -0
  184. package/dist/unattended-install.d.ts +1 -1
  185. package/dist/unattended-install.js +19 -5
  186. package/dist/unattended-install.js.map +1 -1
  187. package/dist/update-check.d.ts +2 -8
  188. package/dist/update-check.js +2 -5
  189. package/dist/update-check.js.map +1 -1
  190. package/dist/view-api.d.ts +15 -0
  191. package/dist/view-api.js +94 -33
  192. package/dist/view-api.js.map +1 -1
  193. package/dist/web-api.d.ts +12 -0
  194. package/dist/web-api.js +77 -0
  195. package/dist/web-api.js.map +1 -1
  196. package/dist/web-login.d.ts +4 -3
  197. package/dist/web-login.js +23 -14
  198. package/dist/web-login.js.map +1 -1
  199. package/dist/web-only-fleet.d.ts +20 -0
  200. package/dist/web-only-fleet.js +21 -0
  201. package/dist/web-only-fleet.js.map +1 -1
  202. package/dist/web-remote-access.d.ts +152 -0
  203. package/dist/web-remote-access.js +368 -0
  204. package/dist/web-remote-access.js.map +1 -0
  205. package/dist/web-session.d.ts +12 -0
  206. package/dist/web-session.js +22 -8
  207. package/dist/web-session.js.map +1 -1
  208. package/dist/windows-agents.d.ts +12 -0
  209. package/dist/windows-agents.js +24 -0
  210. package/dist/windows-agents.js.map +1 -1
  211. package/launcher/agend-install.cjs +16 -2
  212. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ /**
2
+ * kiro-cli-chat injects a synthetic first turn when AgEnD resumes a non-empty
3
+ * conversation. AgEnD never consumes that summary: the model then `reply()`s it
4
+ * onto the channel, so idle ClassicBot rooms keep spending tokens on it.
5
+ *
6
+ * Upstream (kiro-cli-chat `crates/chat-cli/src/cli/chat/mod.rs`, ~1940 on the
7
+ * 2.35 binary; amazon-q-developer-cli ~810): on `--resume` / `--resume-id` with
8
+ * non-empty history,
9
+ * input = Some(input.unwrap_or("In a few words, summarize our conversation so far.".to_owned()));
10
+ * There is no AgEnD scheduler, heartbeat, or keep-warm job with this text.
11
+ * Target selection is kiro's: any resumed conversation whose history is not
12
+ * empty. Idle classic rooms qualify because `src/backend/kiro.ts` always
13
+ * launches them with `--resume` / `--resume-id` unless `skipResume`, and the
14
+ * previous probes themselves keep history non-empty.
15
+ *
16
+ * The probe is unused on classic/legacy UI. AgEnD's override INPUT is only
17
+ * appended when `kiroUi === "legacy"` (boolean `--resume` and `--resume-id`).
18
+ * TUI and V3 launches are unchanged. kiro's handle_input treats a leading `!`
19
+ * as `bash -c <rest>`; `:` is a POSIX no-op.
20
+ */
21
+ export declare const KIRO_RESUME_SUMMARY_PROMPT = "In a few words, summarize our conversation so far.";
22
+ /** Positional INPUT that overrides kiro's resume default without calling the model. */
23
+ export declare const KIRO_RESUME_SUMMARY_OVERRIDE = "!:";
24
+ /**
25
+ * Whether kiro-cli-chat would inject {@link KIRO_RESUME_SUMMARY_PROMPT} for this
26
+ * `chat` argv (the words after the binary, with or without a leading `chat`).
27
+ * A supplied positional INPUT replaces the default, including our override.
28
+ */
29
+ export declare function kiroChatWouldInjectResumeSummary(argv: readonly string[]): boolean;
30
+ /**
31
+ * `chat` argv from an AgEnD kiro launch command (env assignments, then the
32
+ * binary, then `chat` and its flags). AgEnD quotes values with shellQuote
33
+ * (single quotes); that is all this splits.
34
+ */
35
+ export declare function kiroChatArgvFromLaunchCommand(cmd: string): string[];
36
+ /** True when this launch resumed a conversation (boolean `--resume` or `--resume-id`). */
37
+ export declare function kiroLaunchResumesConversation(argv: readonly string[]): boolean;
@@ -0,0 +1,85 @@
1
+ /**
2
+ * kiro-cli-chat injects a synthetic first turn when AgEnD resumes a non-empty
3
+ * conversation. AgEnD never consumes that summary: the model then `reply()`s it
4
+ * onto the channel, so idle ClassicBot rooms keep spending tokens on it.
5
+ *
6
+ * Upstream (kiro-cli-chat `crates/chat-cli/src/cli/chat/mod.rs`, ~1940 on the
7
+ * 2.35 binary; amazon-q-developer-cli ~810): on `--resume` / `--resume-id` with
8
+ * non-empty history,
9
+ * input = Some(input.unwrap_or("In a few words, summarize our conversation so far.".to_owned()));
10
+ * There is no AgEnD scheduler, heartbeat, or keep-warm job with this text.
11
+ * Target selection is kiro's: any resumed conversation whose history is not
12
+ * empty. Idle classic rooms qualify because `src/backend/kiro.ts` always
13
+ * launches them with `--resume` / `--resume-id` unless `skipResume`, and the
14
+ * previous probes themselves keep history non-empty.
15
+ *
16
+ * The probe is unused on classic/legacy UI. AgEnD's override INPUT is only
17
+ * appended when `kiroUi === "legacy"` (boolean `--resume` and `--resume-id`).
18
+ * TUI and V3 launches are unchanged. kiro's handle_input treats a leading `!`
19
+ * as `bash -c <rest>`; `:` is a POSIX no-op.
20
+ */
21
+ export const KIRO_RESUME_SUMMARY_PROMPT = "In a few words, summarize our conversation so far.";
22
+ /** Positional INPUT that overrides kiro's resume default without calling the model. */
23
+ export const KIRO_RESUME_SUMMARY_OVERRIDE = "!:";
24
+ /** Flags on `kiro-cli chat` that consume the next argv word. */
25
+ const VALUE_FLAGS = new Set([
26
+ "--resume-id", "--agent", "--model", "--effort", "--trust-tools",
27
+ "--wrap", "-w", "--format", "-f", "--output-format", "--delete-session", "-d",
28
+ "--session-source", "--agent-engine", "--mode",
29
+ ]);
30
+ /**
31
+ * Whether kiro-cli-chat would inject {@link KIRO_RESUME_SUMMARY_PROMPT} for this
32
+ * `chat` argv (the words after the binary, with or without a leading `chat`).
33
+ * A supplied positional INPUT replaces the default, including our override.
34
+ */
35
+ export function kiroChatWouldInjectResumeSummary(argv) {
36
+ const a = argv[0] === "chat" ? argv.slice(1) : argv;
37
+ let resume = false;
38
+ let input;
39
+ for (let i = 0; i < a.length; i++) {
40
+ const x = a[i];
41
+ if (x === "--resume" || x === "-r") {
42
+ resume = true;
43
+ continue;
44
+ }
45
+ if (x === "--resume-id") {
46
+ resume = true;
47
+ i++;
48
+ continue;
49
+ }
50
+ if (x.startsWith("--resume-id=")) {
51
+ resume = true;
52
+ continue;
53
+ }
54
+ if (VALUE_FLAGS.has(x)) {
55
+ i++;
56
+ continue;
57
+ }
58
+ if (x.startsWith("-"))
59
+ continue;
60
+ input = x;
61
+ }
62
+ return resume && input === undefined;
63
+ }
64
+ /**
65
+ * `chat` argv from an AgEnD kiro launch command (env assignments, then the
66
+ * binary, then `chat` and its flags). AgEnD quotes values with shellQuote
67
+ * (single quotes); that is all this splits.
68
+ */
69
+ export function kiroChatArgvFromLaunchCommand(cmd) {
70
+ const at = cmd.search(/(?:^|\s)chat(?:\s|$)/);
71
+ if (at < 0)
72
+ return [];
73
+ const rest = cmd.slice(cmd.indexOf("chat", at) + "chat".length);
74
+ const out = ["chat"];
75
+ const re = /'([^']*)'|\S+/g;
76
+ for (let m = re.exec(rest); m; m = re.exec(rest))
77
+ out.push(m[1] !== undefined ? m[1] : m[0]);
78
+ return out;
79
+ }
80
+ /** True when this launch resumed a conversation (boolean `--resume` or `--resume-id`). */
81
+ export function kiroLaunchResumesConversation(argv) {
82
+ const a = argv[0] === "chat" ? argv.slice(1) : argv;
83
+ return a.some(x => x === "--resume" || x === "-r" || x === "--resume-id" || x.startsWith("--resume-id="));
84
+ }
85
+ //# sourceMappingURL=kiro-resume-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro-resume-summary.js","sourceRoot":"","sources":["../src/kiro-resume-summary.ts"],"names":[],"mappings":"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"}
package/dist/locale.js CHANGED
@@ -13,6 +13,19 @@ export function detectLocale(fleetConfig) {
13
13
  return detectTimezone() === 8 ? "zh-TW" : "en";
14
14
  }
15
15
  const enMessages = {
16
+ "general_location.offline": "General’s Windows PC is offline. AgEnD is still running here. Reconnect that PC, or switch General back to this host in Settings. Pending or uncertain requests will not be sent again automatically.",
17
+ "general_location.offline_short": "General’s Windows PC is offline. AgEnD is still running here. Reconnect that PC, or switch General back to this host in Settings.",
18
+ "general_location.offline_title": "General’s Windows PC is offline",
19
+ "general_location.label": "Run General on",
20
+ "general_location.host": "This AgEnD host",
21
+ "general_location.windows": "Paired Windows PC",
22
+ "general_location.confirm_windows": "Run General on {0}? Its current process must stop first. The chat stays here. The host conversation is kept; Windows uses its own conversation. Pending or uncertain input will not be sent to the other conversation.",
23
+ "general_location.confirm_host": "Run General on this host again? The Windows process must stop first. Its conversation is kept. General resumes this host’s saved conversation, or starts one if this host has none.",
24
+ "general_location.exit_unconfirmed": "General was not switched: the previous process has not been confirmed stopped. Reconnect its PC or use the existing stopped-process recovery, then try again. No replacement was started.",
25
+ "general_location.complete": "General now runs on {0}. Its previous conversation is kept.",
26
+ "general_location.start_failed": "General’s location was saved, but it could not start. Check Needs you and choose Start or switch back. Its previous conversation is kept; no input was replayed.",
27
+ "general_location.history": "Host and Windows conversations stay separate. Switching does not copy or merge their history.",
28
+ "general_location.input_not_replayed": "Pending or uncertain input will not be sent to the other conversation.",
16
29
  "native_pane.session_unconfirmed": "Windows Claude's saved conversation could not be checked. This agent is stopped; an administrator can start a new conversation.",
17
30
  "native_pane.refresh_for_session": "This agent needs a new-conversation decision. Refresh this page to choose Start a new conversation.",
18
31
  "native_pane.saved_available": "The saved conversation is available again. Choose Start to resume it.",
@@ -140,6 +153,17 @@ const enMessages = {
140
153
  "web_auth.refusal_not_admin_session": "it is not an admin's session.",
141
154
  "web_auth.refusal_no_account": "it was not signed in as an account.",
142
155
  "web_auth.refusal_host_sign_in": "it holds no authority of this computer's admin now (sign in again on this computer with agend web --code).",
156
+ "web_auth.refusal_outside_sign_in": "it signed in from outside, and connections from outside are off now or its authorization has ended (sign in again with a new code).",
157
+ // #3008: connections from outside (a web-only fleet's Notices; the leader's approved wording, cid-alpha3-design).
158
+ "outside.notice_signed_in": "Signed in from outside: {0}.",
159
+ "outside.notice_paused": "Sign-in from outside is paused for {0} after {1} wrong codes.",
160
+ "outside.notice_ended": "The outside link has ended ({0}). Turn it on again on the AgEnD computer, in Settings → Access & security.",
161
+ "outside.reason_expired": "its time ran out",
162
+ "outside.reason_failed": "it could not be reopened",
163
+ "outside.duration_minutes": "{0} minutes",
164
+ "outside.duration_minute": "1 minute",
165
+ "outside.duration_hours": "{0} hours",
166
+ "outside.duration_hour": "1 hour",
143
167
  "web_auth.refusal_not_session": "it is not a signed-in browser.",
144
168
  "web_auth.refusal_other_namespace": "it belongs to another connection.",
145
169
  "web_auth.refusal_not_authorized": "it is not authorized.",
@@ -287,6 +311,8 @@ const enMessages = {
287
311
  "config_history.history_checksum": "stored checksum mismatch",
288
312
  "config_history.history_invalid": "stored copy no longer valid",
289
313
  "login.browser_cleanup_failed": "Sign-in cleanup could not be confirmed. Close the AgEnD-owned login process and restart AgEnD before retrying.",
314
+ "needs.reason.general_windows_offline": "General’s Windows PC is offline",
315
+ "needs.reason.general_location_hold": "Run General on",
290
316
  "needs.reason.native_pane_hold": "Windows agent needs attention",
291
317
  "needs.reason.crashed": "Crashed",
292
318
  "needs.reason.delivery_uncertain": "Could not confirm delivery",
@@ -477,6 +503,7 @@ const enMessages = {
477
503
  "kiro.compaction_kept_ambiguous": "kiro: resuming {0}: conversation {1} was compacted into more than one conversation ({2}), so which one is this instance's cannot be told.",
478
504
  "kiro.compaction_kept_not_ours": "kiro: resuming {0}: conversation {1} was compacted into {2}, but {2} is claimed by another instance or was given up.",
479
505
  "kiro.claim_lost": "kiro: starting a new conversation, because the recorded conversation {0} is no longer this instance's ({1}). It stays in kiro's store.",
506
+ "kiro.identity_unreadable": "kiro: starting a new conversation that is not recorded, because AgEnD's conversation record {0} cannot be fully read. The file is kept as it is (never overwritten); until it is repaired or removed, each launch starts a new conversation.",
480
507
  "kiro.claim_lost_missing": "its claim file is missing",
481
508
  "kiro.claim_lost_incomplete": "its claim file is incomplete; a complete claim is the instance name followed by a newline",
482
509
  "kiro.claim_lost_other_owner": "another instance claims it",
@@ -621,6 +648,7 @@ const enMessages = {
621
648
  "exit.restarted": "✅ {0} restarted.",
622
649
  "exit.ignored": "🚫 Restart for {0} ignored.",
623
650
  "exit.expired": "⌛ Restart prompt for {0} expired.",
651
+ "restart.superseded": "⌛ Not restarted: {0} was stopped, restarted or replaced after this was asked.",
624
652
  "exit.restart_failed": "❌ Failed to restart {0}: {1}",
625
653
  "hang.detected": "⚠️ {0} may be stuck — pane unchanged for {1}min, ready prompt not recognized",
626
654
  "hang.restart": "🔄 Force restart",
@@ -649,6 +677,7 @@ const enMessages = {
649
677
  "poll.not_ready": "This poll is still being posted — try again in a moment.",
650
678
  "poll.voters_title": "🗳 Who voted:",
651
679
  "menu.click_stale": "⚠️ Nothing was changed: the instance moved to another bot, or you are no longer an admin there. Open the menu again.",
680
+ "menu.instance_replaced": "⚠️ Nothing was changed: {0} was stopped, restarted or replaced since this menu opened. Open the menu again.",
652
681
  "buttons.wrong_place": "⚠️ This button does not match the prompt it belongs to. Run the command again.",
653
682
  "buttons.post_failed": "⚠️ Could not post the buttons: {0}",
654
683
  "tips.label": "Tip",
@@ -751,6 +780,7 @@ const enMessages = {
751
780
  "login.status_install": "Install",
752
781
  "login.status_install_then_auth": "Install + sign in",
753
782
  "login.install_on_host": "not installed, and there is no remote installer for it — install it on the host.",
783
+ "login.host_only": "sign in on the host: run `{0}` there.",
754
784
  "login.none_available": "⚠️ No backend can be installed or signed in to remotely here.",
755
785
  "login.no_remote_flow": "⚠️ Backend \"{0}\" has no remote login flow. Run its CLI login command on the host.",
756
786
  "login.unsupported": "⚠️ No remote login flow for backend \"{0}\". OpenCode credentials are API keys — manage them with `opencode auth` in a trusted terminal.",
@@ -1503,6 +1533,19 @@ const enMessages = {
1503
1533
  "settings_confirm.host_operator": "host operator",
1504
1534
  };
1505
1535
  const zhTWMessages = {
1536
+ "general_location.offline": "General 所在的 Windows 電腦已離線。AgEnD 仍在這台主機運作。請重新連線那台電腦,或到設定把 General 切回這台主機。待處理或結果不明的請求不會自動重送。",
1537
+ "general_location.offline_short": "General 所在的 Windows 電腦已離線。AgEnD 仍在這台主機運作。請重新連線那台電腦,或到設定把 General 切回這台主機。",
1538
+ "general_location.offline_title": "General 所在的 Windows 電腦已離線",
1539
+ "general_location.label": "General 執行位置",
1540
+ "general_location.host": "這台 AgEnD 主機",
1541
+ "general_location.windows": "已配對的 Windows 電腦",
1542
+ "general_location.confirm_windows": "要讓 General 在 {0} 執行嗎?必須先停止目前的程序。聊天位置不變。主機上的對話會保留,Windows 使用自己的對話。待處理或結果不明的輸入不會送到另一段對話。",
1543
+ "general_location.confirm_host": "要讓 General 回到這台主機執行嗎?必須先停止 Windows 程序,其對話會保留。General 會繼續這台主機儲存的對話;若主機沒有既有對話,才開啟新對話。",
1544
+ "general_location.exit_unconfirmed": "General 尚未切換:還無法確認前一個程序已停止。請重新連線那台電腦,或完成現有的程序停止復原,再重試。沒有啟動替代程序。",
1545
+ "general_location.complete": "General 現在於 {0} 執行。先前的對話已保留。",
1546
+ "general_location.start_failed": "General 的執行位置已儲存,但未能啟動。請查看「等你處理」,選擇啟動或切回原位置。先前的對話已保留,沒有重送輸入。",
1547
+ "general_location.history": "主機與 Windows 各自保留對話,切換時不會複製或合併對話紀錄。",
1548
+ "general_location.input_not_replayed": "待處理或結果不明的輸入不會送到另一段對話。",
1506
1549
  "native_pane.session_unconfirmed": "無法確認 Windows Claude 已儲存的對話。這個代理已停止,管理員可以開始新對話。",
1507
1550
  "native_pane.refresh_for_session": "這個代理需要由你決定是否開始新對話。請重新整理頁面,再按「開始新對話」。",
1508
1551
  "native_pane.saved_available": "已儲存的對話現在可以使用了。請選擇「啟動」繼續原對話。",
@@ -1629,6 +1672,16 @@ const zhTWMessages = {
1629
1672
  "web_auth.refusal_not_admin_session": "它不是管理者的 session。",
1630
1673
  "web_auth.refusal_no_account": "它不是用帳號登入的。",
1631
1674
  "web_auth.refusal_host_sign_in": "它目前沒有這台電腦管理者的授權(請在這台電腦上執行 agend web --code 重新登入)。",
1675
+ "web_auth.refusal_outside_sign_in": "它是從外面登入的,而從外面連線現在已關閉或授權已結束(請用新的代碼重新登入)。",
1676
+ "outside.notice_signed_in": "有人從外面登入:{0}。",
1677
+ "outside.notice_paused": "從外面登入連錯 {1} 次,已暫停 {0}。",
1678
+ "outside.notice_ended": "從外面連線的連結已結束({0})。請在 AgEnD 電腦上,到「設定 → 存取與安全」重新開啟。",
1679
+ "outside.reason_expired": "時間已到",
1680
+ "outside.reason_failed": "無法重新開啟",
1681
+ "outside.duration_minutes": "{0} 分鐘",
1682
+ "outside.duration_minute": "1 分鐘",
1683
+ "outside.duration_hours": "{0} 小時",
1684
+ "outside.duration_hour": "1 小時",
1632
1685
  "web_auth.refusal_not_session": "它不是已登入的瀏覽器。",
1633
1686
  "web_auth.refusal_other_namespace": "它屬於另一個連線。",
1634
1687
  "web_auth.refusal_not_authorized": "它尚未授權。",
@@ -1776,6 +1829,8 @@ const zhTWMessages = {
1776
1829
  "config_history.history_checksum": "儲存副本的校驗碼不符",
1777
1830
  "config_history.history_invalid": "儲存的副本已不再有效",
1778
1831
  "login.browser_cleanup_failed": "無法確認登入程序已關閉。請先關閉 AgEnD 的登入程序,重新啟動 AgEnD 後再試。",
1832
+ "needs.reason.general_windows_offline": "General 所在的 Windows 電腦已離線",
1833
+ "needs.reason.general_location_hold": "General 執行位置",
1779
1834
  "needs.reason.native_pane_hold": "Windows 代理需要處理",
1780
1835
  "needs.reason.crashed": "已崩潰",
1781
1836
  "needs.reason.delivery_uncertain": "無法確認是否送達",
@@ -1966,6 +2021,7 @@ const zhTWMessages = {
1966
2021
  "kiro.compaction_kept_ambiguous": "kiro:恢復 {0}:對話 {1} 被壓縮成不只一個對話({2}),無法判斷哪一個屬於這個 instance。",
1967
2022
  "kiro.compaction_kept_not_ours": "kiro:恢復 {0}:對話 {1} 已被壓縮成 {2},但 {2} 已被其他 instance 認領或已被放棄。",
1968
2023
  "kiro.claim_lost": "kiro:開新對話,因為紀錄中的對話 {0} 已不屬於這個 instance({1})。該對話仍保留在 kiro 的儲存區。",
2024
+ "kiro.identity_unreadable": "kiro:開新對話且不記錄,因為 AgEnD 的對話紀錄 {0} 無法完整讀取。該檔案原封保留(不會覆寫);在修復或移除它之前,每次啟動都會開新對話。",
1969
2025
  "kiro.claim_lost_missing": "認領檔不見了",
1970
2026
  "kiro.claim_lost_incomplete": "認領檔不完整;完整的認領檔是 instance 名稱加上一個換行",
1971
2027
  "kiro.claim_lost_other_owner": "已被其他 instance 認領",
@@ -2110,6 +2166,7 @@ const zhTWMessages = {
2110
2166
  "exit.restarted": "✅ {0} 已重新啟動。",
2111
2167
  "exit.ignored": "🚫 已忽略 {0} 的重啟提示。",
2112
2168
  "exit.expired": "⌛ {0} 的重啟提示已逾時。",
2169
+ "restart.superseded": "⌛ 沒有重啟:按下之後,{0} 已被停止、重啟或替換。",
2113
2170
  "exit.restart_failed": "❌ 無法重啟 {0}:{1}",
2114
2171
  "hang.detected": "⚠️ {0} 可能卡住了 — 畫面已 {1} 分鐘無變化,也偵測不到就緒提示",
2115
2172
  "hang.restart": "🔄 強制重啟",
@@ -2138,6 +2195,7 @@ const zhTWMessages = {
2138
2195
  "poll.not_ready": "投票還在送出中,請稍後再試。",
2139
2196
  "poll.voters_title": "🗳 投票名單:",
2140
2197
  "menu.click_stale": "⚠️ 沒有變更:這個 instance 已移到另一個 bot,或你已不再是那裡的管理員。請重新開啟選單。",
2198
+ "menu.instance_replaced": "⚠️ 沒有變更:開啟選單後,{0} 已被停止、重啟或替換。請重新開啟選單。",
2141
2199
  "buttons.wrong_place": "⚠️ 這個按鈕和它所屬的提示對不上,請重新執行指令。",
2142
2200
  "buttons.post_failed": "⚠️ 無法送出按鈕:{0}",
2143
2201
  "tips.label": "小提示",
@@ -2240,6 +2298,7 @@ const zhTWMessages = {
2240
2298
  "login.status_install": "安裝",
2241
2299
  "login.status_install_then_auth": "安裝並登入",
2242
2300
  "login.install_on_host": "尚未安裝,且沒有遠端安裝方式——請在主機上安裝。",
2301
+ "login.host_only": "請在主機上登入:在那裡執行 `{0}`。",
2243
2302
  "login.none_available": "⚠️ 這裡沒有可以遠端安裝或登入的 Backend。",
2244
2303
  "login.no_remote_flow": "⚠️ Backend「{0}」沒有遠端登入流程。請在主機上執行它自己的 CLI 登入指令。",
2245
2304
  "login.unsupported": "⚠️ Backend「{0}」沒有遠端登入流程。OpenCode 憑證是 API key——請在可信任的終端用 `opencode auth` 管理。",