@linkshell/wire 0.2.11 → 0.2.12

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/dist/index.d.ts CHANGED
@@ -14,3 +14,4 @@ export * from "./async-questions.js";
14
14
  export * from "./questions.js";
15
15
  export * from "./acp.js";
16
16
  export * from "./editor.js";
17
+ export * from "./live-activity.js";
package/dist/index.js CHANGED
@@ -14,4 +14,5 @@ export * from "./async-questions.js";
14
14
  export * from "./questions.js";
15
15
  export * from "./acp.js";
16
16
  export * from "./editor.js";
17
+ export * from "./live-activity.js";
17
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,205 @@
1
+ import { z } from "zod";
2
+ import type { PendingPermissionSummary, PermissionOption, SessionActivity, SessionSummary, TerminalInfo, ToolKind } from "./model.js";
3
+ export type AttentionPhase = "waiting_for_approval" | "waiting_for_input" | "failed" | "running" | "starting" | "completed" | "stale";
4
+ export declare const liveActivityActionSchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ label: z.ZodString;
7
+ role: z.ZodEnum<["allow", "reject", "always", "stop", "choice"]>;
8
+ kind: z.ZodEnum<["permission", "answer", "async-answer"]>;
9
+ computerKey: z.ZodString;
10
+ sessionId: z.ZodString;
11
+ requestId: z.ZodString;
12
+ optionId: z.ZodString;
13
+ questionId: z.ZodOptional<z.ZodString>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ id: string;
16
+ label: string;
17
+ kind: "permission" | "answer" | "async-answer";
18
+ optionId: string;
19
+ requestId: string;
20
+ role: "choice" | "stop" | "reject" | "allow" | "always";
21
+ sessionId: string;
22
+ computerKey: string;
23
+ questionId?: string | undefined;
24
+ }, {
25
+ id: string;
26
+ label: string;
27
+ kind: "permission" | "answer" | "async-answer";
28
+ optionId: string;
29
+ requestId: string;
30
+ role: "choice" | "stop" | "reject" | "allow" | "always";
31
+ sessionId: string;
32
+ computerKey: string;
33
+ questionId?: string | undefined;
34
+ }>;
35
+ export type LiveActivityAction = z.infer<typeof liveActivityActionSchema>;
36
+ export declare const liveActivityContentSchema: z.ZodObject<{
37
+ phase: z.ZodEnum<["waiting_for_approval", "waiting_for_input", "failed", "running", "starting", "completed", "stale"]>;
38
+ title: z.ZodString;
39
+ subtitle: z.ZodString;
40
+ project: z.ZodString;
41
+ agent: z.ZodString;
42
+ agents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
44
+ id: z.ZodString;
45
+ label: z.ZodString;
46
+ role: z.ZodEnum<["allow", "reject", "always", "stop", "choice"]>;
47
+ kind: z.ZodEnum<["permission", "answer", "async-answer"]>;
48
+ computerKey: z.ZodString;
49
+ sessionId: z.ZodString;
50
+ requestId: z.ZodString;
51
+ optionId: z.ZodString;
52
+ questionId: z.ZodOptional<z.ZodString>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ id: string;
55
+ label: string;
56
+ kind: "permission" | "answer" | "async-answer";
57
+ optionId: string;
58
+ requestId: string;
59
+ role: "choice" | "stop" | "reject" | "allow" | "always";
60
+ sessionId: string;
61
+ computerKey: string;
62
+ questionId?: string | undefined;
63
+ }, {
64
+ id: string;
65
+ label: string;
66
+ kind: "permission" | "answer" | "async-answer";
67
+ optionId: string;
68
+ requestId: string;
69
+ role: "choice" | "stop" | "reject" | "allow" | "always";
70
+ sessionId: string;
71
+ computerKey: string;
72
+ questionId?: string | undefined;
73
+ }>, "many">>;
74
+ hasMoreActions: z.ZodOptional<z.ZodBoolean>;
75
+ waitingCount: z.ZodNumber;
76
+ runningCount: z.ZodNumber;
77
+ failedCount: z.ZodNumber;
78
+ deepLink: z.ZodEffects<z.ZodString, string, string>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ agent: string;
81
+ title: string;
82
+ phase: "running" | "completed" | "failed" | "waiting_for_approval" | "waiting_for_input" | "starting" | "stale";
83
+ subtitle: string;
84
+ project: string;
85
+ waitingCount: number;
86
+ runningCount: number;
87
+ failedCount: number;
88
+ deepLink: string;
89
+ agents?: string[] | undefined;
90
+ actions?: {
91
+ id: string;
92
+ label: string;
93
+ kind: "permission" | "answer" | "async-answer";
94
+ optionId: string;
95
+ requestId: string;
96
+ role: "choice" | "stop" | "reject" | "allow" | "always";
97
+ sessionId: string;
98
+ computerKey: string;
99
+ questionId?: string | undefined;
100
+ }[] | undefined;
101
+ hasMoreActions?: boolean | undefined;
102
+ }, {
103
+ agent: string;
104
+ title: string;
105
+ phase: "running" | "completed" | "failed" | "waiting_for_approval" | "waiting_for_input" | "starting" | "stale";
106
+ subtitle: string;
107
+ project: string;
108
+ waitingCount: number;
109
+ runningCount: number;
110
+ failedCount: number;
111
+ deepLink: string;
112
+ agents?: string[] | undefined;
113
+ actions?: {
114
+ id: string;
115
+ label: string;
116
+ kind: "permission" | "answer" | "async-answer";
117
+ optionId: string;
118
+ requestId: string;
119
+ role: "choice" | "stop" | "reject" | "allow" | "always";
120
+ sessionId: string;
121
+ computerKey: string;
122
+ questionId?: string | undefined;
123
+ }[] | undefined;
124
+ hasMoreActions?: boolean | undefined;
125
+ }>;
126
+ export type LiveActivityContentState = z.infer<typeof liveActivityContentSchema>;
127
+ export interface LiveActivityPayload extends Partial<LiveActivityContentState> {
128
+ active: boolean;
129
+ computerName: string;
130
+ computerKey?: string;
131
+ }
132
+ export declare const liveActivityIdSchema: z.ZodString;
133
+ export declare const liveActivitySubscriptionSchema: z.ZodObject<{
134
+ activityId: z.ZodString;
135
+ serviceUrl: z.ZodString;
136
+ grant: z.ZodString;
137
+ expiresAt: z.ZodNumber;
138
+ computerKey: z.ZodString;
139
+ }, "strip", z.ZodTypeAny, {
140
+ computerKey: string;
141
+ activityId: string;
142
+ serviceUrl: string;
143
+ grant: string;
144
+ expiresAt: number;
145
+ }, {
146
+ computerKey: string;
147
+ activityId: string;
148
+ serviceUrl: string;
149
+ grant: string;
150
+ expiresAt: number;
151
+ }>;
152
+ export type LiveActivitySubscription = z.infer<typeof liveActivitySubscriptionSchema>;
153
+ export declare function liveActivityContent(payload: LiveActivityPayload): LiveActivityContentState;
154
+ export declare const toolVerb: Record<ToolKind, string>;
155
+ /** Drops the agent's own English verb and wrapping backticks from a tool title. */
156
+ export declare function cleanToolTitle(title: string): string;
157
+ /** Drops the shell wrapper and environment prefixes agents put around a command. */
158
+ export declare function tidyCommand(command: string): string;
159
+ export declare function activityText(activity: SessionActivity | undefined): string;
160
+ export interface PermissionChoice {
161
+ option: PermissionOption;
162
+ label: string;
163
+ role: "allow" | "always" | "reject" | "stop";
164
+ }
165
+ /** Localized permission choices, in the order: reject, allow, then the rest. */
166
+ export declare function permissionChoices(options: PermissionOption[]): PermissionChoice[];
167
+ export declare function sessionTitle(session: Pick<SessionSummary, "title">): string;
168
+ /** Markdown flattened to one line of plain text, for list previews. */
169
+ export declare function plainPreview(text: string): string;
170
+ /** Async questions need attention even while the agent keeps working. */
171
+ export declare function needsUserInput(session: SessionSummary): boolean;
172
+ export declare function needsAttention(session: SessionSummary): boolean;
173
+ /**
174
+ * A start command as a one-line title. The UI font has no Nerd Font glyphs
175
+ * (private-use code points), which would show as boxes; the terminal itself
176
+ * draws them with its symbol font.
177
+ */
178
+ export declare function commandTitle(command: string): string;
179
+ /** How a terminal reads in a list: its title, what it's doing, and whether it has ended. */
180
+ export declare function terminalState(terminal: TerminalInfo): {
181
+ title: string;
182
+ mono: boolean;
183
+ ended: boolean;
184
+ busy: boolean;
185
+ failed: boolean;
186
+ detail: string;
187
+ };
188
+ /** Classify a session into the 7-phase attention hierarchy (t3code model). */
189
+ export declare function classifySessionPhase(session: SessionSummary, online?: boolean): AttentionPhase;
190
+ export declare function phasePriority(phase: AttentionPhase): number;
191
+ export declare function liveActivityActions(session: SessionSummary, computerKey: string): {
192
+ actions: LiveActivityAction[];
193
+ hasMoreActions: boolean;
194
+ };
195
+ /** Recheck against the connected host after waking the app, not the cached card. */
196
+ export declare function isLiveActivityActionCurrent(action: LiveActivityAction, computerKey: string, session: SessionSummary | undefined, permissions?: PendingPermissionSummary[]): boolean;
197
+ export declare function liveActivityDetailLink(computerKey: string, kind: "session" | "terminal", id: string): string;
198
+ /**
199
+ * Builds the aggregated single-card iOS Live Activity / Dynamic Island payload
200
+ * for a computer. New progress brings its task and agent to the front together.
201
+ */
202
+ export declare function buildLiveActivitySnapshot(computerName: string, sessions: SessionSummary[], terminals: TerminalInfo[], online: boolean, computerKey?: string, goals?: Record<string, {
203
+ status: string;
204
+ objective: string;
205
+ }>): LiveActivityPayload;
@@ -0,0 +1,368 @@
1
+ import { z } from "zod";
2
+ import { unwrapShellCommand } from "./shell.js";
3
+ export const liveActivityActionSchema = z.object({
4
+ id: z.string().max(560), label: z.string().min(1).max(64),
5
+ role: z.enum(["allow", "reject", "always", "stop", "choice"]),
6
+ kind: z.enum(["permission", "answer", "async-answer"]),
7
+ computerKey: z.string().min(1).max(512), sessionId: z.string().min(1).max(128),
8
+ requestId: z.string().min(1).max(256), optionId: z.string().max(160), questionId: z.string().max(128).optional(),
9
+ });
10
+ export const liveActivityContentSchema = z.object({
11
+ phase: z.enum(["waiting_for_approval", "waiting_for_input", "failed", "running", "starting", "completed", "stale"]),
12
+ title: z.string().max(160), subtitle: z.string().max(360), project: z.string().max(160),
13
+ agent: z.string().max(80), agents: z.array(z.string().max(80)).max(12).optional(),
14
+ actions: z.array(liveActivityActionSchema).max(3).optional(), hasMoreActions: z.boolean().optional(),
15
+ waitingCount: z.number().int().min(0), runningCount: z.number().int().min(0), failedCount: z.number().int().min(0),
16
+ deepLink: z.string().max(2048).refine((url) => url.startsWith("linkshell:///")),
17
+ });
18
+ export const liveActivityIdSchema = z.string().min(1).max(128).regex(/^[a-zA-Z0-9-]+$/);
19
+ export const liveActivitySubscriptionSchema = z.object({
20
+ activityId: liveActivityIdSchema,
21
+ serviceUrl: z.string().url().max(256),
22
+ grant: z.string().regex(/^[a-f0-9]{64}$/),
23
+ expiresAt: z.number().int().positive(),
24
+ computerKey: z.string().min(1).max(512),
25
+ });
26
+ // ActivityKit accepts at most 4 KB. Preserve request identifiers exactly; drop
27
+ // whole buttons when necessary, so a truncated choice can never be submitted.
28
+ export function liveActivityContent(payload) {
29
+ const cut = (value, max) => [...(value ?? "")].slice(0, max).join("");
30
+ const actions = (payload.actions ?? []).filter((action) => liveActivityActionSchema.safeParse(action).success);
31
+ const state = {
32
+ phase: payload.phase ?? "completed", title: cut(payload.title, 80), subtitle: cut(payload.subtitle, 180),
33
+ project: cut(payload.project, 80), agent: cut(payload.agent, 40),
34
+ agents: payload.agents?.filter((id) => id.length <= 80).slice(0, 12),
35
+ actions, hasMoreActions: payload.hasMoreActions || actions.length !== (payload.actions ?? []).length,
36
+ waitingCount: payload.waitingCount ?? 0, runningCount: payload.runningCount ?? 0, failedCount: payload.failedCount ?? 0,
37
+ deepLink: payload.deepLink && payload.deepLink.length <= 2048 ? payload.deepLink : "linkshell:///",
38
+ };
39
+ const size = () => new TextEncoder().encode(JSON.stringify(state)).length;
40
+ while (size() > 3500 && state.actions.length) {
41
+ state.actions.pop();
42
+ state.hasMoreActions = true;
43
+ }
44
+ if (size() > 3500) {
45
+ state.subtitle = cut(state.subtitle, 60);
46
+ state.project = "";
47
+ state.agents = state.agents?.slice(0, 3);
48
+ }
49
+ if (size() > 3500)
50
+ state.deepLink = "linkshell:///";
51
+ return state;
52
+ }
53
+ export const toolVerb = {
54
+ read: "读取",
55
+ edit: "编辑",
56
+ delete: "删除",
57
+ move: "移动",
58
+ search: "搜索",
59
+ execute: "运行",
60
+ think: "思考",
61
+ fetch: "获取",
62
+ switch_mode: "切换模式",
63
+ other: "",
64
+ };
65
+ const ENGLISH_VERB = /^(read|reading|edit|editing|write|writing|update|create|delete|search|searching|list|run|running|fetch|grep|glob|find|view|open)\b[:\s]+/i;
66
+ /** Drops the agent's own English verb and wrapping backticks from a tool title. */
67
+ export function cleanToolTitle(title) {
68
+ return title.replace(ENGLISH_VERB, "").replace(/^`(.+)`$/s, "$1").trim();
69
+ }
70
+ /** Drops the shell wrapper and environment prefixes agents put around a command. */
71
+ export function tidyCommand(command) {
72
+ let text = unwrapShellCommand(command).trim();
73
+ // "export TZ=…;", "TZ=… cmd", "cd dir &&" are noise on a phone.
74
+ for (;;) {
75
+ const next = text
76
+ .replace(/^export\s+\w+=(?:'[^']*'|"[^"]*"|\S*)\s*(?:;|&&|\n)\s*/, "")
77
+ .replace(/^\w+=(?:'[^']*'|"[^"]*"|\S+)\s+(?=\S)/, "");
78
+ if (next === text)
79
+ break;
80
+ text = next;
81
+ }
82
+ return text || command;
83
+ }
84
+ export function activityText(activity) {
85
+ if (!activity)
86
+ return "正在运行…";
87
+ if (activity.kind === "thinking")
88
+ return "思考中…";
89
+ if (activity.kind === "responding")
90
+ return "正在回复…";
91
+ const verb = activity.toolKind ? toolVerb[activity.toolKind] : "";
92
+ const subject = activity.title ? (activity.toolKind === "execute" ? tidyCommand(cleanToolTitle(activity.title)) : cleanToolTitle(activity.title)) : "";
93
+ return [verb, subject].filter(Boolean).join(" ") || "正在使用工具…";
94
+ }
95
+ const choiceById = {
96
+ accept: { label: "允许", role: "allow" },
97
+ acceptForSession: { label: "本会话都允许", role: "always" },
98
+ decline: { label: "拒绝", role: "reject" },
99
+ cancel: { label: "拒绝并停止", role: "stop" },
100
+ turn: { label: "本轮允许", role: "allow" },
101
+ session: { label: "本会话都允许", role: "always" },
102
+ };
103
+ const choiceByKind = {
104
+ allow_once: { label: "允许", role: "allow" },
105
+ allow_always: { label: "总是允许", role: "always" },
106
+ reject_once: { label: "拒绝", role: "reject" },
107
+ reject_always: { label: "总是拒绝", role: "stop" },
108
+ };
109
+ /** Localized permission choices, in the order: reject, allow, then the rest. */
110
+ export function permissionChoices(options) {
111
+ const kinds = new Map();
112
+ for (const option of options)
113
+ kinds.set(option.kind, (kinds.get(option.kind) ?? 0) + 1);
114
+ const choices = options.map((option) => {
115
+ const known = choiceById[option.optionId];
116
+ if (known)
117
+ return { option, ...known };
118
+ const byKind = choiceByKind[option.kind];
119
+ // Two options of one kind: the agent's own names tell them apart.
120
+ return { option, label: (kinds.get(option.kind) ?? 0) > 1 ? option.name : byKind.label, role: byKind.role };
121
+ });
122
+ const order = ["reject", "allow", "always", "stop"];
123
+ return choices.sort((a, b) => order.indexOf(a.role) - order.indexOf(b.role));
124
+ }
125
+ export function sessionTitle(session) {
126
+ return session.title?.trim() || "新会话";
127
+ }
128
+ /** Markdown flattened to one line of plain text, for list previews. */
129
+ export function plainPreview(text) {
130
+ return text
131
+ .replace(/```[\s\S]*?```/g, " ")
132
+ .replace(/`([^`]*)`/g, "$1")
133
+ .replace(/!\[[^\]]*\]\([^)]*\)/g, "")
134
+ .replace(/\[([^\]]*)\]\([^)]*\)/g, "$1")
135
+ .replace(/^\s{0,3}(#{1,6}|>|[-*+]|\d+\.)\s+/gm, "")
136
+ .replace(/(^|\s)#{1,6}\s+/g, "$1")
137
+ .replace(/(\*\*|__|\*|_|~~)(\S(?:.*?\S)?)\1/g, "$2")
138
+ .replace(/\|/g, " ")
139
+ .replace(/\s+/g, " ")
140
+ // Previews arrive flattened: list bullets end up mid-line ("包括: - 一 - 二").
141
+ .replace(/([::。;;,,])\s*[-*•]\s+/g, "$1")
142
+ .replace(/\s[-*•]\s+(?=\S)/g, " · ")
143
+ .trim();
144
+ }
145
+ /** Async questions need attention even while the agent keeps working. */
146
+ export function needsUserInput(session) {
147
+ return !!session.permission?.questions?.length || !!session.asyncQuestions?.length;
148
+ }
149
+ export function needsAttention(session) {
150
+ return session.state === "waiting" || needsUserInput(session);
151
+ }
152
+ const SHELLS = /^-?(zsh|bash|sh|fish|dash|ksh|tcsh|nu|pwsh|powershell)\b/;
153
+ /**
154
+ * A start command as a one-line title. The UI font has no Nerd Font glyphs
155
+ * (private-use code points), which would show as boxes; the terminal itself
156
+ * draws them with its symbol font.
157
+ */
158
+ export function commandTitle(command) {
159
+ return command.replace(/[\uE000-\uF8FF\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu, "").replace(/\s+/g, " ").trim();
160
+ }
161
+ /** How a terminal reads in a list: its title, what it's doing, and whether it has ended. */
162
+ export function terminalState(terminal) {
163
+ const ended = terminal.exitCode !== undefined || terminal.interrupted === true;
164
+ const foreground = ended || SHELLS.test(terminal.title) ? undefined : terminal.title;
165
+ const failed = !terminal.interrupted && typeof terminal.exitCode === "number" && terminal.exitCode !== 0;
166
+ const detail = terminal.interrupted
167
+ ? "电脑重启时中断"
168
+ : ended
169
+ ? failed
170
+ ? `已退出 · 代码 ${terminal.exitCode}`
171
+ : "已结束"
172
+ : foreground
173
+ ? `正在运行 ${foreground}`
174
+ : "空闲";
175
+ return {
176
+ title: (terminal.command && commandTitle(terminal.command)) || "终端",
177
+ mono: Boolean(terminal.command),
178
+ ended,
179
+ busy: Boolean(foreground),
180
+ failed,
181
+ detail,
182
+ };
183
+ }
184
+ function baseName(path) {
185
+ const parts = path.split(/[\\/]/).filter(Boolean);
186
+ return parts[parts.length - 1] ?? path;
187
+ }
188
+ /** Classify a session into the 7-phase attention hierarchy (t3code model). */
189
+ export function classifySessionPhase(session, online = true) {
190
+ if (!online || session.state === "offline")
191
+ return "stale";
192
+ if (needsUserInput(session))
193
+ return "waiting_for_input";
194
+ if (session.state === "waiting" || needsAttention(session))
195
+ return "waiting_for_approval";
196
+ if (session.state === "error")
197
+ return "failed";
198
+ if (session.state === "running")
199
+ return "running";
200
+ if (session.state === "unknown")
201
+ return "starting";
202
+ return "completed";
203
+ }
204
+ export function phasePriority(phase) {
205
+ switch (phase) {
206
+ case "waiting_for_approval":
207
+ case "waiting_for_input":
208
+ return 0;
209
+ case "failed":
210
+ return 1;
211
+ case "running":
212
+ case "starting":
213
+ return 2;
214
+ case "completed":
215
+ return 3;
216
+ case "stale":
217
+ return 4;
218
+ }
219
+ }
220
+ export function liveActivityActions(session, computerKey) {
221
+ if (!computerKey)
222
+ return { actions: [], hasMoreActions: false };
223
+ const base = { computerKey, sessionId: session.id };
224
+ const permission = session.permission;
225
+ let choices;
226
+ let hasMoreActions = false;
227
+ if (permission) {
228
+ if (permission.url)
229
+ return { actions: [], hasMoreActions: true };
230
+ const questions = permission.questions;
231
+ if (questions?.length) {
232
+ const question = questions[0];
233
+ // A multi-select or form needs its own submit step; never submit a partial form.
234
+ if (questions.length !== 1 || question.kind !== "choice" || question.secret) {
235
+ return { actions: [], hasMoreActions: true };
236
+ }
237
+ choices = (question.options ?? []).map((option) => ({
238
+ ...base, id: `${permission.requestId}:${question.id}:${option.value}`, label: option.label,
239
+ role: "choice", kind: "answer", requestId: permission.requestId,
240
+ questionId: question.id, optionId: option.value,
241
+ }));
242
+ hasMoreActions = Boolean(question.other) || choices.length === 0;
243
+ }
244
+ else {
245
+ choices = permissionChoices(permission.options).map(({ option, label, role }) => ({
246
+ ...base, id: `${permission.requestId}:${option.optionId}`, label, role,
247
+ kind: "permission", requestId: permission.requestId, optionId: option.optionId,
248
+ }));
249
+ }
250
+ }
251
+ else {
252
+ const question = session.asyncQuestions?.[0];
253
+ if (!question)
254
+ return { actions: [], hasMoreActions: false };
255
+ choices = question.options.map((option, index) => ({
256
+ ...base, id: `${question.id}:${index}`, label: option, role: "choice",
257
+ kind: "async-answer", requestId: question.id, optionId: option,
258
+ }));
259
+ // Async questions always support a typed answer in the session.
260
+ hasMoreActions = true;
261
+ }
262
+ // Keep whole labels and the ActivityKit payload bounded. The title opens every choice.
263
+ const visible = choices.filter((choice) => [...choice.label].length <= 16 && choice.optionId.length <= 160).slice(0, 3);
264
+ return { actions: visible, hasMoreActions: hasMoreActions || visible.length < choices.length };
265
+ }
266
+ /** Recheck against the connected host after waking the app, not the cached card. */
267
+ export function isLiveActivityActionCurrent(action, computerKey, session, permissions = []) {
268
+ if (!session || session.archived || action.computerKey !== computerKey || action.sessionId !== session.id)
269
+ return false;
270
+ if (action.kind === "async-answer") {
271
+ return Boolean(session.asyncQuestions?.some((question) => question.id === action.requestId && question.options.includes(action.optionId)));
272
+ }
273
+ const request = permissions.find((item) => item.requestId === action.requestId)
274
+ ?? (session.permission?.requestId === action.requestId ? session.permission : undefined);
275
+ if (!request || request.url)
276
+ return false;
277
+ if (action.kind === "permission") {
278
+ return !request.questions?.length && request.options.some((option) => option.optionId === action.optionId);
279
+ }
280
+ if (action.kind !== "answer" || request.questions?.length !== 1)
281
+ return false;
282
+ const question = request.questions[0];
283
+ return question.id === action.questionId && question.kind === "choice" && !question.secret
284
+ && Boolean(question.options?.some((option) => option.value === action.optionId));
285
+ }
286
+ export function liveActivityDetailLink(computerKey, kind, id) {
287
+ if (!computerKey)
288
+ return `linkshell:///${kind}/${encodeURIComponent(id)}`;
289
+ return `linkshell:///activity?computer=${encodeURIComponent(computerKey)}&${kind}=${encodeURIComponent(id)}`;
290
+ }
291
+ /**
292
+ * Builds the aggregated single-card iOS Live Activity / Dynamic Island payload
293
+ * for a computer. New progress brings its task and agent to the front together.
294
+ */
295
+ export function buildLiveActivitySnapshot(computerName, sessions, terminals, online, computerKey = "", goals = {}) {
296
+ const live = sessions.filter((s) => !s.archived);
297
+ const waiting = live.filter((s) => needsAttention(s));
298
+ const failed = live.filter((s) => !needsAttention(s) && s.state === "error");
299
+ const runningSessions = live.filter((s) => !needsAttention(s) && s.state === "running");
300
+ const busyTerminals = terminals.filter((t) => terminalState(t).busy)
301
+ .sort((a, b) => b.activeAt - a.activeAt || a.id.localeCompare(b.id));
302
+ const runningCount = runningSessions.length + busyTerminals.length;
303
+ const candidates = [...waiting, ...failed, ...runningSessions].sort((a, b) => {
304
+ if (a.updatedAt !== b.updatedAt)
305
+ return b.updatedAt - a.updatedAt;
306
+ const pa = phasePriority(classifySessionPhase(a, online));
307
+ const pb = phasePriority(classifySessionPhase(b, online));
308
+ if (pa !== pb)
309
+ return pa - pb;
310
+ return a.id.localeCompare(b.id);
311
+ });
312
+ const hero = candidates[0];
313
+ if (!hero && busyTerminals.length === 0) {
314
+ return { active: false, computerName };
315
+ }
316
+ // Keep the featured task first; one icon represents every task using the same agent.
317
+ const agents = [...new Set([
318
+ ...candidates.map((session) => ({ agent: session.agent, at: session.updatedAt })),
319
+ ...busyTerminals.map((terminal) => ({ agent: "terminal", at: terminal.activeAt })),
320
+ ].sort((a, b) => b.at - a.at).map((item) => item.agent))];
321
+ if (hero && (!busyTerminals[0] || hero.updatedAt >= busyTerminals[0].activeAt)) {
322
+ const phase = classifySessionPhase(hero, online);
323
+ const heroGoal = goals[hero.id];
324
+ const subtitle = phase === "waiting_for_approval" || phase === "waiting_for_input"
325
+ ? hero.permission?.title ?? hero.asyncQuestions?.[0]?.title ?? "需要你的确认"
326
+ : phase === "failed"
327
+ ? hero.preview
328
+ ? plainPreview(hero.preview)
329
+ : "上一轮执行出错"
330
+ : heroGoal?.status === "active" && !hero.activity
331
+ ? `目标 · ${heroGoal.objective}`
332
+ : hero.activity?.kind === "responding" && hero.preview
333
+ ? plainPreview(hero.preview)
334
+ : activityText(hero.activity);
335
+ return {
336
+ active: true,
337
+ computerName,
338
+ phase,
339
+ title: sessionTitle(hero),
340
+ subtitle,
341
+ project: baseName(hero.worktree?.source ?? hero.cwd),
342
+ agent: hero.agent,
343
+ agents,
344
+ ...(online ? liveActivityActions(hero, computerKey) : { actions: [], hasMoreActions: false }),
345
+ waitingCount: waiting.length,
346
+ runningCount,
347
+ failedCount: failed.length,
348
+ deepLink: liveActivityDetailLink(computerKey, "session", hero.id),
349
+ };
350
+ }
351
+ const busy = busyTerminals[0];
352
+ const tState = terminalState(busy);
353
+ return {
354
+ active: true,
355
+ computerName,
356
+ phase: online ? "running" : "stale",
357
+ title: tState.title || "终端运行中",
358
+ subtitle: tState.detail || baseName(busy.cwd),
359
+ project: baseName(busy.cwd),
360
+ agent: "terminal",
361
+ agents,
362
+ waitingCount: waiting.length,
363
+ runningCount,
364
+ failedCount: failed.length,
365
+ deepLink: liveActivityDetailLink(computerKey, "terminal", busy.id),
366
+ };
367
+ }
368
+ //# sourceMappingURL=live-activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-activity.js","sourceRoot":"","sources":["../src/live-activity.ts"],"names":[],"mappings":"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"}
package/dist/rpc.d.ts CHANGED
@@ -3629,6 +3629,38 @@ declare const acpMethods: {
3629
3629
  };
3630
3630
  };
3631
3631
  declare const coreMethods: {
3632
+ readonly "liveActivities.subscribe": {
3633
+ readonly params: z.ZodObject<{
3634
+ activityId: z.ZodString;
3635
+ serviceUrl: z.ZodString;
3636
+ grant: z.ZodString;
3637
+ expiresAt: z.ZodNumber;
3638
+ computerKey: z.ZodString;
3639
+ }, "strip", z.ZodTypeAny, {
3640
+ computerKey: string;
3641
+ activityId: string;
3642
+ serviceUrl: string;
3643
+ grant: string;
3644
+ expiresAt: number;
3645
+ }, {
3646
+ computerKey: string;
3647
+ activityId: string;
3648
+ serviceUrl: string;
3649
+ grant: string;
3650
+ expiresAt: number;
3651
+ }>;
3652
+ readonly result: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
3653
+ };
3654
+ readonly "liveActivities.unsubscribe": {
3655
+ readonly params: z.ZodObject<{
3656
+ activityId: z.ZodString;
3657
+ }, "strip", z.ZodTypeAny, {
3658
+ activityId: string;
3659
+ }, {
3660
+ activityId: string;
3661
+ }>;
3662
+ readonly result: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
3663
+ };
3632
3664
  readonly "machine.info": {
3633
3665
  readonly params: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
3634
3666
  readonly result: z.ZodObject<{
@@ -24872,13 +24904,13 @@ declare const coreMethods: {
24872
24904
  gateway: z.ZodString;
24873
24905
  }, "strip", z.ZodTypeAny, {
24874
24906
  code: string;
24875
- link: string;
24876
24907
  expiresAt: number;
24908
+ link: string;
24877
24909
  gateway: string;
24878
24910
  }, {
24879
24911
  code: string;
24880
- link: string;
24881
24912
  expiresAt: number;
24913
+ link: string;
24882
24914
  gateway: string;
24883
24915
  }>;
24884
24916
  };
package/dist/rpc.js CHANGED
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { goalChangeSchema, sessionGoalSchema } from "./goal.js";
3
3
  import { acpAgentSettingsSchema, acpFeaturesSchema, acpRemoteAgentSchema, acpProviderSchema } from "./acp.js";
4
4
  import { editorRequestSchema, editorResultSchema } from "./editor.js";
5
+ import { liveActivityIdSchema, liveActivitySubscriptionSchema } from "./live-activity.js";
5
6
  import { backgroundTaskSchema, agentInfoSchema, gatewayStatusSchema, machineInfoSchema, portInfoSchema, projectSummarySchema, terminalInfoSchema, sessionDriverSchema, sessionSummarySchema, subagentInfoSchema, gitInfoSchema, worktreeEntrySchema, questionAnswerSchema, pendingPermissionSchema, } from "./model.js";
6
7
  import { contentBlockSchema, sessionEventSchema, sessionNoticeSchema } from "./updates.js";
7
8
  // ── JSON-RPC 2.0 framing ─────────────────────────────────────────────
@@ -75,6 +76,14 @@ const acpMethods = {
75
76
  },
76
77
  };
77
78
  const coreMethods = {
79
+ "liveActivities.subscribe": {
80
+ params: liveActivitySubscriptionSchema,
81
+ result: z.object({}),
82
+ },
83
+ "liveActivities.unsubscribe": {
84
+ params: z.object({ activityId: liveActivityIdSchema }),
85
+ result: z.object({}),
86
+ },
78
87
  "machine.info": {
79
88
  params: empty,
80
89
  result: machineInfoSchema,
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkshell/wire",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "Wire protocol for LinkShell v2: session model, JSON-RPC methods, end-to-end encryption and the relay client.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/index.ts CHANGED
@@ -14,3 +14,4 @@ export * from "./async-questions.js";
14
14
  export * from "./questions.js";
15
15
  export * from "./acp.js";
16
16
  export * from "./editor.js";
17
+ export * from "./live-activity.js";
@@ -0,0 +1,400 @@
1
+ import { z } from "zod";
2
+ import type { PendingPermissionSummary, PermissionOption, SessionActivity, SessionSummary, TerminalInfo, ToolKind } from "./model.js";
3
+ import { unwrapShellCommand } from "./shell.js";
4
+
5
+ export type AttentionPhase = "waiting_for_approval" | "waiting_for_input" | "failed" | "running" | "starting" | "completed" | "stale";
6
+
7
+ export const liveActivityActionSchema = z.object({
8
+ id: z.string().max(560), label: z.string().min(1).max(64),
9
+ role: z.enum(["allow", "reject", "always", "stop", "choice"]),
10
+ kind: z.enum(["permission", "answer", "async-answer"]),
11
+ computerKey: z.string().min(1).max(512), sessionId: z.string().min(1).max(128),
12
+ requestId: z.string().min(1).max(256), optionId: z.string().max(160), questionId: z.string().max(128).optional(),
13
+ });
14
+ export type LiveActivityAction = z.infer<typeof liveActivityActionSchema>;
15
+
16
+ export const liveActivityContentSchema = z.object({
17
+ phase: z.enum(["waiting_for_approval", "waiting_for_input", "failed", "running", "starting", "completed", "stale"]),
18
+ title: z.string().max(160), subtitle: z.string().max(360), project: z.string().max(160),
19
+ agent: z.string().max(80), agents: z.array(z.string().max(80)).max(12).optional(),
20
+ actions: z.array(liveActivityActionSchema).max(3).optional(), hasMoreActions: z.boolean().optional(),
21
+ waitingCount: z.number().int().min(0), runningCount: z.number().int().min(0), failedCount: z.number().int().min(0),
22
+ deepLink: z.string().max(2048).refine((url) => url.startsWith("linkshell:///")),
23
+ });
24
+ export type LiveActivityContentState = z.infer<typeof liveActivityContentSchema>;
25
+ export interface LiveActivityPayload extends Partial<LiveActivityContentState> { active: boolean; computerName: string; computerKey?: string }
26
+
27
+ export const liveActivityIdSchema = z.string().min(1).max(128).regex(/^[a-zA-Z0-9-]+$/);
28
+ export const liveActivitySubscriptionSchema = z.object({
29
+ activityId: liveActivityIdSchema,
30
+ serviceUrl: z.string().url().max(256),
31
+ grant: z.string().regex(/^[a-f0-9]{64}$/),
32
+ expiresAt: z.number().int().positive(),
33
+ computerKey: z.string().min(1).max(512),
34
+ });
35
+ export type LiveActivitySubscription = z.infer<typeof liveActivitySubscriptionSchema>;
36
+
37
+ // ActivityKit accepts at most 4 KB. Preserve request identifiers exactly; drop
38
+ // whole buttons when necessary, so a truncated choice can never be submitted.
39
+ export function liveActivityContent(payload: LiveActivityPayload): LiveActivityContentState {
40
+ const cut = (value: string | undefined, max: number) => [...(value ?? "")].slice(0, max).join("");
41
+ const actions = (payload.actions ?? []).filter((action) => liveActivityActionSchema.safeParse(action).success);
42
+ const state: LiveActivityContentState = {
43
+ phase: payload.phase ?? "completed", title: cut(payload.title, 80), subtitle: cut(payload.subtitle, 180),
44
+ project: cut(payload.project, 80), agent: cut(payload.agent, 40),
45
+ agents: payload.agents?.filter((id) => id.length <= 80).slice(0, 12),
46
+ actions, hasMoreActions: payload.hasMoreActions || actions.length !== (payload.actions ?? []).length,
47
+ waitingCount: payload.waitingCount ?? 0, runningCount: payload.runningCount ?? 0, failedCount: payload.failedCount ?? 0,
48
+ deepLink: payload.deepLink && payload.deepLink.length <= 2048 ? payload.deepLink : "linkshell:///",
49
+ };
50
+ const size = () => new TextEncoder().encode(JSON.stringify(state)).length;
51
+ while (size() > 3500 && state.actions!.length) { state.actions!.pop(); state.hasMoreActions = true; }
52
+ if (size() > 3500) { state.subtitle = cut(state.subtitle, 60); state.project = ""; state.agents = state.agents?.slice(0, 3); }
53
+ if (size() > 3500) state.deepLink = "linkshell:///";
54
+ return state;
55
+ }
56
+
57
+ export const toolVerb: Record<ToolKind, string> = {
58
+ read: "读取",
59
+ edit: "编辑",
60
+ delete: "删除",
61
+ move: "移动",
62
+ search: "搜索",
63
+ execute: "运行",
64
+ think: "思考",
65
+ fetch: "获取",
66
+ switch_mode: "切换模式",
67
+ other: "",
68
+ };
69
+
70
+
71
+ const ENGLISH_VERB = /^(read|reading|edit|editing|write|writing|update|create|delete|search|searching|list|run|running|fetch|grep|glob|find|view|open)\b[:\s]+/i;
72
+
73
+ /** Drops the agent's own English verb and wrapping backticks from a tool title. */
74
+ export function cleanToolTitle(title: string): string {
75
+ return title.replace(ENGLISH_VERB, "").replace(/^`(.+)`$/s, "$1").trim();
76
+ }
77
+
78
+ /** Drops the shell wrapper and environment prefixes agents put around a command. */
79
+ export function tidyCommand(command: string): string {
80
+ let text = unwrapShellCommand(command).trim();
81
+ // "export TZ=…;", "TZ=… cmd", "cd dir &&" are noise on a phone.
82
+ for (;;) {
83
+ const next = text
84
+ .replace(/^export\s+\w+=(?:'[^']*'|"[^"]*"|\S*)\s*(?:;|&&|\n)\s*/, "")
85
+ .replace(/^\w+=(?:'[^']*'|"[^"]*"|\S+)\s+(?=\S)/, "");
86
+ if (next === text) break;
87
+ text = next;
88
+ }
89
+ return text || command;
90
+ }
91
+
92
+
93
+ export function activityText(activity: SessionActivity | undefined): string {
94
+ if (!activity) return "正在运行…";
95
+ if (activity.kind === "thinking") return "思考中…";
96
+ if (activity.kind === "responding") return "正在回复…";
97
+ const verb = activity.toolKind ? toolVerb[activity.toolKind] : "";
98
+ const subject = activity.title ? (activity.toolKind === "execute" ? tidyCommand(cleanToolTitle(activity.title)) : cleanToolTitle(activity.title)) : "";
99
+ return [verb, subject].filter(Boolean).join(" ") || "正在使用工具…";
100
+ }
101
+
102
+ export interface PermissionChoice {
103
+ option: PermissionOption;
104
+ label: string;
105
+ role: "allow" | "always" | "reject" | "stop";
106
+ }
107
+
108
+ const choiceById: Record<string, { label: string; role: PermissionChoice["role"] }> = {
109
+ accept: { label: "允许", role: "allow" },
110
+ acceptForSession: { label: "本会话都允许", role: "always" },
111
+ decline: { label: "拒绝", role: "reject" },
112
+ cancel: { label: "拒绝并停止", role: "stop" },
113
+ turn: { label: "本轮允许", role: "allow" },
114
+ session: { label: "本会话都允许", role: "always" },
115
+ };
116
+
117
+ const choiceByKind: Record<PermissionOption["kind"], { label: string; role: PermissionChoice["role"] }> = {
118
+ allow_once: { label: "允许", role: "allow" },
119
+ allow_always: { label: "总是允许", role: "always" },
120
+ reject_once: { label: "拒绝", role: "reject" },
121
+ reject_always: { label: "总是拒绝", role: "stop" },
122
+ };
123
+
124
+ /** Localized permission choices, in the order: reject, allow, then the rest. */
125
+ export function permissionChoices(options: PermissionOption[]): PermissionChoice[] {
126
+ const kinds = new Map<string, number>();
127
+ for (const option of options) kinds.set(option.kind, (kinds.get(option.kind) ?? 0) + 1);
128
+ const choices = options.map((option): PermissionChoice => {
129
+ const known = choiceById[option.optionId];
130
+ if (known) return { option, ...known };
131
+ const byKind = choiceByKind[option.kind];
132
+ // Two options of one kind: the agent's own names tell them apart.
133
+ return { option, label: (kinds.get(option.kind) ?? 0) > 1 ? option.name : byKind.label, role: byKind.role };
134
+ });
135
+ const order: PermissionChoice["role"][] = ["reject", "allow", "always", "stop"];
136
+ return choices.sort((a, b) => order.indexOf(a.role) - order.indexOf(b.role));
137
+ }
138
+
139
+ export function sessionTitle(session: Pick<SessionSummary, "title">): string {
140
+ return session.title?.trim() || "新会话";
141
+ }
142
+
143
+ /** Markdown flattened to one line of plain text, for list previews. */
144
+ export function plainPreview(text: string): string {
145
+ return text
146
+ .replace(/```[\s\S]*?```/g, " ")
147
+ .replace(/`([^`]*)`/g, "$1")
148
+ .replace(/!\[[^\]]*\]\([^)]*\)/g, "")
149
+ .replace(/\[([^\]]*)\]\([^)]*\)/g, "$1")
150
+ .replace(/^\s{0,3}(#{1,6}|>|[-*+]|\d+\.)\s+/gm, "")
151
+ .replace(/(^|\s)#{1,6}\s+/g, "$1")
152
+ .replace(/(\*\*|__|\*|_|~~)(\S(?:.*?\S)?)\1/g, "$2")
153
+ .replace(/\|/g, " ")
154
+ .replace(/\s+/g, " ")
155
+ // Previews arrive flattened: list bullets end up mid-line ("包括: - 一 - 二").
156
+ .replace(/([::。;;,,])\s*[-*•]\s+/g, "$1")
157
+ .replace(/\s[-*•]\s+(?=\S)/g, " · ")
158
+ .trim();
159
+ }
160
+
161
+ /** Async questions need attention even while the agent keeps working. */
162
+ export function needsUserInput(session: SessionSummary): boolean {
163
+ return !!session.permission?.questions?.length || !!session.asyncQuestions?.length;
164
+ }
165
+
166
+ export function needsAttention(session: SessionSummary): boolean {
167
+ return session.state === "waiting" || needsUserInput(session);
168
+ }
169
+
170
+ const SHELLS = /^-?(zsh|bash|sh|fish|dash|ksh|tcsh|nu|pwsh|powershell)\b/;
171
+
172
+ /**
173
+ * A start command as a one-line title. The UI font has no Nerd Font glyphs
174
+ * (private-use code points), which would show as boxes; the terminal itself
175
+ * draws them with its symbol font.
176
+ */
177
+ export function commandTitle(command: string): string {
178
+ return command.replace(/[\uE000-\uF8FF\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu, "").replace(/\s+/g, " ").trim();
179
+ }
180
+
181
+ /** How a terminal reads in a list: its title, what it's doing, and whether it has ended. */
182
+ export function terminalState(terminal: TerminalInfo) {
183
+ const ended = terminal.exitCode !== undefined || terminal.interrupted === true;
184
+ const foreground = ended || SHELLS.test(terminal.title) ? undefined : terminal.title;
185
+ const failed = !terminal.interrupted && typeof terminal.exitCode === "number" && terminal.exitCode !== 0;
186
+ const detail = terminal.interrupted
187
+ ? "电脑重启时中断"
188
+ : ended
189
+ ? failed
190
+ ? `已退出 · 代码 ${terminal.exitCode}`
191
+ : "已结束"
192
+ : foreground
193
+ ? `正在运行 ${foreground}`
194
+ : "空闲";
195
+ return {
196
+ title: (terminal.command && commandTitle(terminal.command)) || "终端",
197
+ mono: Boolean(terminal.command),
198
+ ended,
199
+ busy: Boolean(foreground),
200
+ failed,
201
+ detail,
202
+ };
203
+ }
204
+
205
+ function baseName(path: string): string {
206
+ const parts = path.split(/[\\/]/).filter(Boolean);
207
+ return parts[parts.length - 1] ?? path;
208
+ }
209
+
210
+ /** Classify a session into the 7-phase attention hierarchy (t3code model). */
211
+ export function classifySessionPhase(session: SessionSummary, online = true): AttentionPhase {
212
+ if (!online || session.state === "offline") return "stale";
213
+ if (needsUserInput(session)) return "waiting_for_input";
214
+ if (session.state === "waiting" || needsAttention(session)) return "waiting_for_approval";
215
+ if (session.state === "error") return "failed";
216
+ if (session.state === "running") return "running";
217
+ if (session.state === "unknown") return "starting";
218
+ return "completed";
219
+ }
220
+
221
+ export function phasePriority(phase: AttentionPhase): number {
222
+ switch (phase) {
223
+ case "waiting_for_approval":
224
+ case "waiting_for_input":
225
+ return 0;
226
+ case "failed":
227
+ return 1;
228
+ case "running":
229
+ case "starting":
230
+ return 2;
231
+ case "completed":
232
+ return 3;
233
+ case "stale":
234
+ return 4;
235
+ }
236
+ }
237
+
238
+ export function liveActivityActions(session: SessionSummary, computerKey: string): {
239
+ actions: LiveActivityAction[];
240
+ hasMoreActions: boolean;
241
+ } {
242
+ if (!computerKey) return { actions: [], hasMoreActions: false };
243
+ const base = { computerKey, sessionId: session.id };
244
+ const permission = session.permission;
245
+ let choices: LiveActivityAction[];
246
+ let hasMoreActions = false;
247
+ if (permission) {
248
+ if (permission.url) return { actions: [], hasMoreActions: true };
249
+ const questions = permission.questions;
250
+ if (questions?.length) {
251
+ const question = questions[0]!;
252
+ // A multi-select or form needs its own submit step; never submit a partial form.
253
+ if (questions.length !== 1 || question.kind !== "choice" || question.secret) {
254
+ return { actions: [], hasMoreActions: true };
255
+ }
256
+ choices = (question.options ?? []).map((option) => ({
257
+ ...base, id: `${permission.requestId}:${question.id}:${option.value}`, label: option.label,
258
+ role: "choice", kind: "answer", requestId: permission.requestId,
259
+ questionId: question.id, optionId: option.value,
260
+ }));
261
+ hasMoreActions = Boolean(question.other) || choices.length === 0;
262
+ } else {
263
+ choices = permissionChoices(permission.options).map(({ option, label, role }) => ({
264
+ ...base, id: `${permission.requestId}:${option.optionId}`, label, role,
265
+ kind: "permission", requestId: permission.requestId, optionId: option.optionId,
266
+ }));
267
+ }
268
+ } else {
269
+ const question = session.asyncQuestions?.[0];
270
+ if (!question) return { actions: [], hasMoreActions: false };
271
+ choices = question.options.map((option, index) => ({
272
+ ...base, id: `${question.id}:${index}`, label: option, role: "choice",
273
+ kind: "async-answer", requestId: question.id, optionId: option,
274
+ }));
275
+ // Async questions always support a typed answer in the session.
276
+ hasMoreActions = true;
277
+ }
278
+ // Keep whole labels and the ActivityKit payload bounded. The title opens every choice.
279
+ const visible = choices.filter((choice) => [...choice.label].length <= 16 && choice.optionId.length <= 160).slice(0, 3);
280
+ return { actions: visible, hasMoreActions: hasMoreActions || visible.length < choices.length };
281
+ }
282
+
283
+ /** Recheck against the connected host after waking the app, not the cached card. */
284
+ export function isLiveActivityActionCurrent(
285
+ action: LiveActivityAction,
286
+ computerKey: string,
287
+ session: SessionSummary | undefined,
288
+ permissions: PendingPermissionSummary[] = [],
289
+ ): boolean {
290
+ if (!session || session.archived || action.computerKey !== computerKey || action.sessionId !== session.id) return false;
291
+ if (action.kind === "async-answer") {
292
+ return Boolean(session.asyncQuestions?.some((question) => question.id === action.requestId && question.options.includes(action.optionId)));
293
+ }
294
+ const request = permissions.find((item) => item.requestId === action.requestId)
295
+ ?? (session.permission?.requestId === action.requestId ? session.permission : undefined);
296
+ if (!request || request.url) return false;
297
+ if (action.kind === "permission") {
298
+ return !request.questions?.length && request.options.some((option) => option.optionId === action.optionId);
299
+ }
300
+ if (action.kind !== "answer" || request.questions?.length !== 1) return false;
301
+ const question = request.questions[0]!;
302
+ return question.id === action.questionId && question.kind === "choice" && !question.secret
303
+ && Boolean(question.options?.some((option) => option.value === action.optionId));
304
+ }
305
+
306
+ export function liveActivityDetailLink(computerKey: string, kind: "session" | "terminal", id: string): string {
307
+ if (!computerKey) return `linkshell:///${kind}/${encodeURIComponent(id)}`;
308
+ return `linkshell:///activity?computer=${encodeURIComponent(computerKey)}&${kind}=${encodeURIComponent(id)}`;
309
+ }
310
+
311
+ /**
312
+ * Builds the aggregated single-card iOS Live Activity / Dynamic Island payload
313
+ * for a computer. New progress brings its task and agent to the front together.
314
+ */
315
+ export function buildLiveActivitySnapshot(
316
+ computerName: string,
317
+ sessions: SessionSummary[],
318
+ terminals: TerminalInfo[],
319
+ online: boolean,
320
+ computerKey = "",
321
+ goals: Record<string, { status: string; objective: string }> = {},
322
+ ): LiveActivityPayload {
323
+ const live = sessions.filter((s) => !s.archived);
324
+ const waiting = live.filter((s) => needsAttention(s));
325
+ const failed = live.filter((s) => !needsAttention(s) && s.state === "error");
326
+ const runningSessions = live.filter((s) => !needsAttention(s) && s.state === "running");
327
+ const busyTerminals = terminals.filter((t) => terminalState(t).busy)
328
+ .sort((a, b) => b.activeAt - a.activeAt || a.id.localeCompare(b.id));
329
+ const runningCount = runningSessions.length + busyTerminals.length;
330
+
331
+ const candidates = [...waiting, ...failed, ...runningSessions].sort((a, b) => {
332
+ if (a.updatedAt !== b.updatedAt) return b.updatedAt - a.updatedAt;
333
+ const pa = phasePriority(classifySessionPhase(a, online));
334
+ const pb = phasePriority(classifySessionPhase(b, online));
335
+ if (pa !== pb) return pa - pb;
336
+ return a.id.localeCompare(b.id);
337
+ });
338
+
339
+ const hero = candidates[0];
340
+ if (!hero && busyTerminals.length === 0) {
341
+ return { active: false, computerName };
342
+ }
343
+
344
+ // Keep the featured task first; one icon represents every task using the same agent.
345
+ const agents = [...new Set([
346
+ ...candidates.map((session) => ({ agent: session.agent, at: session.updatedAt })),
347
+ ...busyTerminals.map((terminal) => ({ agent: "terminal", at: terminal.activeAt })),
348
+ ].sort((a, b) => b.at - a.at).map((item) => item.agent))];
349
+
350
+ if (hero && (!busyTerminals[0] || hero.updatedAt >= busyTerminals[0].activeAt)) {
351
+ const phase = classifySessionPhase(hero, online);
352
+ const heroGoal = goals[hero.id];
353
+ const subtitle =
354
+ phase === "waiting_for_approval" || phase === "waiting_for_input"
355
+ ? hero.permission?.title ?? hero.asyncQuestions?.[0]?.title ?? "需要你的确认"
356
+ : phase === "failed"
357
+ ? hero.preview
358
+ ? plainPreview(hero.preview)
359
+ : "上一轮执行出错"
360
+ : heroGoal?.status === "active" && !hero.activity
361
+ ? `目标 · ${heroGoal.objective}`
362
+ : hero.activity?.kind === "responding" && hero.preview
363
+ ? plainPreview(hero.preview)
364
+ : activityText(hero.activity);
365
+
366
+ return {
367
+ active: true,
368
+ computerName,
369
+ phase,
370
+ title: sessionTitle(hero),
371
+ subtitle,
372
+ project: baseName(hero.worktree?.source ?? hero.cwd),
373
+ agent: hero.agent,
374
+ agents,
375
+ ...(online ? liveActivityActions(hero, computerKey) : { actions: [], hasMoreActions: false }),
376
+ waitingCount: waiting.length,
377
+ runningCount,
378
+ failedCount: failed.length,
379
+ deepLink: liveActivityDetailLink(computerKey, "session", hero.id),
380
+ };
381
+ }
382
+
383
+ const busy = busyTerminals[0]!;
384
+ const tState = terminalState(busy);
385
+ return {
386
+ active: true,
387
+ computerName,
388
+ phase: online ? "running" : "stale",
389
+ title: tState.title || "终端运行中",
390
+ subtitle: tState.detail || baseName(busy.cwd),
391
+ project: baseName(busy.cwd),
392
+ agent: "terminal",
393
+ agents,
394
+ waitingCount: waiting.length,
395
+ runningCount,
396
+ failedCount: failed.length,
397
+ deepLink: liveActivityDetailLink(computerKey, "terminal", busy.id),
398
+ };
399
+ }
400
+
package/src/rpc.ts CHANGED
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { goalChangeSchema, sessionGoalSchema } from "./goal.js";
3
3
  import { acpAgentSettingsSchema, acpFeaturesSchema, acpRemoteAgentSchema, acpProviderSchema } from "./acp.js";
4
4
  import { editorRequestSchema, editorResultSchema } from "./editor.js";
5
+ import { liveActivityIdSchema, liveActivitySubscriptionSchema } from "./live-activity.js";
5
6
  import {
6
7
  backgroundTaskSchema,
7
8
  agentInfoSchema,
@@ -106,6 +107,14 @@ const acpMethods = {
106
107
  } as const;
107
108
 
108
109
  const coreMethods = {
110
+ "liveActivities.subscribe": {
111
+ params: liveActivitySubscriptionSchema,
112
+ result: z.object({}),
113
+ },
114
+ "liveActivities.unsubscribe": {
115
+ params: z.object({ activityId: liveActivityIdSchema }),
116
+ result: z.object({}),
117
+ },
109
118
  "machine.info": {
110
119
  params: empty,
111
120
  result: machineInfoSchema,