@linkshell/host 0.4.37 → 0.4.39

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.
@@ -0,0 +1,280 @@
1
+ import { chmodSync, existsSync, readFileSync, renameSync, writeFileSync } from "node:fs";
2
+ import { createHash } from "node:crypto";
3
+ import { buildLiveActivitySnapshot, liveActivityActions, liveActivityContent, liveActivityDetailLink, liveActivityNoticeSchema, liveActivitySessionTask, liveActivitySubscriptionSchema, liveActivityTerminalTask, needsAttention, RpcError, terminalState, } from "@linkshell/wire";
4
+ /** Its subscriptions outlive a phone socket; only a device-scoped delivery grant leaves that socket. */
5
+ export class LiveActivityRelay {
6
+ options;
7
+ registrations = new Map();
8
+ watched = new Map();
9
+ sessions = new Map();
10
+ terminals = new Map();
11
+ stopListeners = [];
12
+ abort = new AbortController();
13
+ timer;
14
+ scheduledAt = 0;
15
+ heartbeat;
16
+ stopped = false;
17
+ flushing = false;
18
+ constructor(options) {
19
+ this.options = options;
20
+ }
21
+ get serviceUrl() { return (this.options.serviceUrl ?? "https://push.itool.tech").replace(/\/$/, ""); }
22
+ start() {
23
+ try {
24
+ if (existsSync(this.options.path)) {
25
+ const saved = JSON.parse(readFileSync(this.options.path, "utf8"));
26
+ if (Array.isArray(saved))
27
+ for (const item of saved.slice(0, 16)) {
28
+ const parsed = liveActivitySubscriptionSchema.safeParse(item);
29
+ if (parsed.success && parsed.data.expiresAt > Date.now() && parsed.data.serviceUrl === this.serviceUrl) {
30
+ const notices = (Array.isArray(item.notices) ? item.notices : []).flatMap((notice) => {
31
+ const result = liveActivityNoticeSchema.safeParse(notice);
32
+ return result.success && Date.now() - result.data.createdAt < 180_000 ? [result.data] : [];
33
+ }).slice(-8);
34
+ this.registrations.set(parsed.data.activityId, { ...parsed.data, sequence: Number.isSafeInteger(item.sequence) ? item.sequence : 0,
35
+ notices, lastNoticeId: typeof item.lastNoticeId === "string" ? item.lastNoticeId.slice(0, 128) : undefined });
36
+ }
37
+ }
38
+ }
39
+ }
40
+ catch {
41
+ this.options.log("[live-activity] could not restore registrations");
42
+ }
43
+ for (const session of this.options.hub.listSessions({ limit: 200 }).sessions)
44
+ this.sessions.set(session.id, session);
45
+ for (const terminal of this.options.terminals.list())
46
+ this.terminals.set(terminal.id, terminal);
47
+ this.stopListeners.push(this.options.hub.onSummary((session) => this.sessionChanged(session)), this.options.terminals.onChange((terminal, closed) => this.terminalChanged(terminal, closed)));
48
+ this.heartbeat = setInterval(() => this.schedule(), 60_000);
49
+ this.heartbeat.unref();
50
+ this.schedule(0);
51
+ }
52
+ subscribe(subscription) {
53
+ const data = liveActivitySubscriptionSchema.parse(subscription);
54
+ if (data.serviceUrl !== this.serviceUrl)
55
+ throw RpcError.app("invalid_params", "实时活动服务地址与电脑配置不一致");
56
+ if (data.expiresAt <= Date.now() || data.expiresAt > Date.now() + 8 * 60 * 60 * 1000)
57
+ throw RpcError.app("invalid_params", "实时活动授权已过期");
58
+ if (!this.registrations.has(data.activityId) && this.registrations.size >= 16)
59
+ throw RpcError.app("busy", "实时活动数量已达上限");
60
+ const previous = this.registrations.get(data.activityId);
61
+ this.registrations.set(data.activityId, { ...previous, ...data, sequence: previous?.sequence ?? 0 });
62
+ if (!previous)
63
+ this.options.log(`[live-activity] registered ${data.activityId}`);
64
+ this.save();
65
+ this.schedule(0);
66
+ }
67
+ async unsubscribe(activityId) {
68
+ const registration = this.registrations.get(activityId);
69
+ this.registrations.delete(activityId);
70
+ if (registration)
71
+ this.options.log(`[live-activity] revoked by device ${activityId}`);
72
+ this.save();
73
+ if (!this.registrations.size)
74
+ this.reconcileWatches([]);
75
+ if (!registration)
76
+ return;
77
+ try {
78
+ await this.request()(`${this.serviceUrl}/v1/activities/${activityId}`, {
79
+ method: "DELETE", headers: { Authorization: `Bearer ${registration.grant}` },
80
+ signal: AbortSignal.any([this.abort.signal, AbortSignal.timeout(10_000)]), redirect: "error",
81
+ });
82
+ }
83
+ catch { /* The native activity already ended; the server also bounds every grant's lifetime. */ }
84
+ }
85
+ request() { return this.options.request ?? fetch; }
86
+ sessionChanged(session) {
87
+ const before = this.sessions.get(session.id);
88
+ this.sessions.set(session.id, session);
89
+ if (!session.archived && this.registrations.size) {
90
+ const task = liveActivitySessionTask(session);
91
+ const request = (value) => [value.permission?.requestId, ...(value.asyncQuestions ?? []).map((question) => question.id)].filter(Boolean).join(":");
92
+ const attention = needsAttention(session) || session.state === "error";
93
+ // Discovery can replay existing work after a restart. Alert on a transition
94
+ // we observed, not on a historical question being discovered for the first time.
95
+ if (attention && before && (liveActivitySessionTask(before).phase !== task.phase || request(before) !== request(session))) {
96
+ this.enqueue(task, request(session) || String(session.updatedAt));
97
+ }
98
+ else if (session.state === "idle" && before && (before.state === "running" || needsAttention(before))) {
99
+ this.enqueue(task, String(session.updatedAt));
100
+ }
101
+ else {
102
+ this.removeOutdatedNotices(task);
103
+ }
104
+ }
105
+ else if (session.archived) {
106
+ for (const row of this.registrations.values())
107
+ row.notices = row.notices?.filter((notice) => notice.task.kind !== "session" || notice.task.id !== session.id);
108
+ }
109
+ this.schedule();
110
+ }
111
+ terminalChanged(terminal, closed = false) {
112
+ const before = this.terminals.get(terminal.id);
113
+ if (closed)
114
+ this.terminals.delete(terminal.id);
115
+ else
116
+ this.terminals.set(terminal.id, terminal);
117
+ const task = liveActivityTerminalTask(terminal);
118
+ if (!closed && !terminal.interrupted && before && terminalState(before).busy && !terminalState(terminal).busy) {
119
+ this.enqueue(task, String(terminal.activeAt));
120
+ }
121
+ else if (closed) {
122
+ for (const row of this.registrations.values())
123
+ row.notices = row.notices?.filter((notice) => notice.task.kind !== "terminal" || notice.task.id !== terminal.id);
124
+ }
125
+ else
126
+ this.removeOutdatedNotices(task);
127
+ this.schedule();
128
+ }
129
+ removeOutdatedNotices(task) {
130
+ for (const row of this.registrations.values())
131
+ row.notices = row.notices?.filter((notice) => notice.task.id !== task.id || notice.task.kind !== task.kind || notice.task.phase === task.phase);
132
+ }
133
+ enqueue(task, transition) {
134
+ const notice = {
135
+ id: createHash("sha256").update(JSON.stringify([task.kind, task.id, task.phase, transition])).digest("hex"),
136
+ createdAt: Date.now(), task: { ...task, title: task.title.slice(0, 160), subtitle: task.subtitle.slice(0, 360), project: task.project.slice(0, 160) },
137
+ };
138
+ for (const row of this.registrations.values()) {
139
+ if (row.lastNoticeId !== notice.id)
140
+ row.notices = [...(row.notices ?? []).filter((item) => item.task.id !== task.id || item.task.kind !== task.kind), notice].slice(-8);
141
+ }
142
+ if (this.registrations.size)
143
+ this.save();
144
+ this.schedule(0);
145
+ }
146
+ save() {
147
+ const temporary = `${this.options.path}.tmp`;
148
+ const entries = [...this.registrations.values()].map(({ retryAfter: _retry, failures: _failures, ...entry }) => entry);
149
+ writeFileSync(temporary, JSON.stringify(entries), { mode: 0o600 });
150
+ chmodSync(temporary, 0o600);
151
+ renameSync(temporary, this.options.path);
152
+ }
153
+ schedule(delay = 5000) {
154
+ if (this.stopped || !this.registrations.size)
155
+ return;
156
+ const at = Date.now() + delay;
157
+ if (this.timer && this.scheduledAt <= at)
158
+ return;
159
+ clearTimeout(this.timer);
160
+ this.scheduledAt = at;
161
+ this.timer = setTimeout(() => {
162
+ this.timer = undefined;
163
+ void this.flush().catch(() => this.options.log("[live-activity] update failed"));
164
+ }, delay);
165
+ this.timer.unref();
166
+ }
167
+ reconcileWatches(sessions) {
168
+ const wanted = new Set(this.registrations.size ? sessions.filter((session) => !session.archived && (session.state === "running" || needsAttention(session))).map((session) => session.id) : []);
169
+ for (const [id, subscriber] of this.watched)
170
+ if (!wanted.has(id)) {
171
+ this.options.hub.unsubscribe(id, subscriber);
172
+ this.watched.delete(id);
173
+ }
174
+ for (const session of sessions) {
175
+ if (!wanted.has(session.id) || this.watched.has(session.id))
176
+ continue;
177
+ const subscriber = { event: () => { } };
178
+ this.watched.set(session.id, subscriber);
179
+ void this.options.hub.subscribe(session.id, session.lastSeq, subscriber).then(() => {
180
+ if (this.stopped || this.watched.get(session.id) !== subscriber)
181
+ this.options.hub.unsubscribe(session.id, subscriber);
182
+ }).catch(() => { if (this.watched.get(session.id) === subscriber)
183
+ this.watched.delete(session.id); });
184
+ }
185
+ }
186
+ async flush() {
187
+ if (this.stopped)
188
+ return;
189
+ if (this.flushing) {
190
+ this.schedule();
191
+ return;
192
+ }
193
+ this.flushing = true;
194
+ try {
195
+ for (const [id, row] of this.registrations)
196
+ if (row.expiresAt <= Date.now()) {
197
+ this.registrations.delete(id);
198
+ this.options.log(`[live-activity] authorization expired ${id}`);
199
+ }
200
+ const sessions = this.options.hub.listSessions({ limit: 200 }).sessions;
201
+ this.reconcileWatches(sessions);
202
+ const terminals = this.options.terminals.list();
203
+ const sends = [...this.registrations.values()].filter((row) => (row.retryAfter ?? 0) <= Date.now()).map(async (row) => {
204
+ const payload = buildLiveActivitySnapshot(this.options.computerName(), sessions, terminals, true, row.computerKey);
205
+ row.notices = row.notices?.filter((notice) => Date.now() - notice.createdAt < 180_000);
206
+ const notice = row.notices?.[0];
207
+ const selected = notice?.task.kind === "session" ? sessions.find((session) => session.id === notice.task.id) : undefined;
208
+ const buttons = selected ? liveActivityActions(selected, row.computerKey) : { actions: [], hasMoreActions: false };
209
+ const event = payload.active || (row.notices?.length ?? 0) > 1 ? "update" : "end";
210
+ const contentState = liveActivityContent(notice ? {
211
+ ...payload, ...notice.task, ...buttons, noticeId: notice.id,
212
+ deepLink: liveActivityDetailLink(row.computerKey, notice.task.kind, notice.task.id),
213
+ tasks: [notice.task, ...(payload.tasks ?? []).filter((task) => task.id !== notice.task.id || task.kind !== notice.task.kind)],
214
+ } : payload.active ? { ...payload, noticeId: row.lastNoticeId }
215
+ : { ...payload, phase: "completed", title: "任务已结束", subtitle: "打开 App 查看结果", noticeId: row.lastNoticeId });
216
+ row.sequence = Math.max(Date.now(), row.sequence + 1);
217
+ try {
218
+ const response = await this.request()(`${this.serviceUrl}/v1/activities/${row.activityId}/events`, {
219
+ method: "POST", headers: { Authorization: `Bearer ${row.grant}`, "content-type": "application/json" },
220
+ body: JSON.stringify({ sequence: row.sequence, event, contentState, notice: notice ?? null }),
221
+ signal: AbortSignal.any([this.abort.signal, AbortSignal.timeout(15_000)]), redirect: "error",
222
+ });
223
+ if (this.registrations.get(row.activityId) !== row || this.stopped)
224
+ return;
225
+ // A rejected payload or a proxy's 400 is not a revoked ActivityKit
226
+ // token. Keep the grant so the next snapshot can recover unattended.
227
+ if (response.status === 410 || (response.ok && event === "end")) {
228
+ this.registrations.delete(row.activityId);
229
+ this.options.log(`[live-activity] retired ${row.activityId}: ${response.status === 410 ? "registration expired" : "completed"}`);
230
+ }
231
+ else if (response.ok) {
232
+ row.failures = 0;
233
+ row.retryAfter = 0;
234
+ if (notice) {
235
+ row.notices = row.notices?.filter((item) => item.id !== notice.id);
236
+ row.lastNoticeId = notice.id;
237
+ }
238
+ }
239
+ else {
240
+ this.options.log(`[live-activity] delivery HTTP ${response.status} for ${row.activityId}; retaining registration`);
241
+ throw new Error("delivery unavailable");
242
+ }
243
+ }
244
+ catch {
245
+ if (this.registrations.get(row.activityId) !== row || this.stopped)
246
+ return;
247
+ row.failures = Math.min((row.failures ?? 0) + 1, 5);
248
+ row.retryAfter = Date.now() + Math.min(60_000, 5000 * 2 ** (row.failures - 1));
249
+ this.schedule();
250
+ }
251
+ });
252
+ this.save();
253
+ await Promise.allSettled(sends);
254
+ if (!this.stopped) {
255
+ this.save();
256
+ if (!this.registrations.size)
257
+ this.reconcileWatches([]);
258
+ if ([...this.registrations.values()].some((row) => row.notices?.length))
259
+ this.schedule(1000);
260
+ else if ([...this.registrations.values()].some((row) => row.retryAfter))
261
+ this.schedule();
262
+ }
263
+ }
264
+ finally {
265
+ this.flushing = false;
266
+ }
267
+ }
268
+ stop() {
269
+ this.stopped = true;
270
+ this.abort.abort();
271
+ clearTimeout(this.timer);
272
+ clearInterval(this.heartbeat);
273
+ for (const stop of this.stopListeners)
274
+ stop();
275
+ for (const [id, subscriber] of this.watched)
276
+ this.options.hub.unsubscribe(id, subscriber);
277
+ this.watched.clear();
278
+ }
279
+ }
280
+ //# sourceMappingURL=live-activities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-activities.js","sourceRoot":"","sources":["../../../src/live-activities.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { type GatewayStatus, type MachineInfo, type NotificationName, type Notif
2
2
  import type { GatewayLink } from "../gateway.js";
3
3
  import type { SessionHub } from "../hub.js";
4
4
  import type { TerminalManager } from "../terminals.js";
5
+ import type { LiveActivityRelay } from "../live-activities.js";
5
6
  /**
6
7
  * Whether a WebSocket handshake on the development port comes from a development client and not from a web
7
8
  * page. Browsers let any page open a socket to 127.0.0.1, and this API runs commands. A page can't hide its
@@ -22,6 +23,7 @@ export interface HostRpcServerOptions {
22
23
  /** Optional loopback TCP port, for local development clients. */
23
24
  tcpPort?: number;
24
25
  log: (message: string) => void;
26
+ liveActivities?: LiveActivityRelay;
25
27
  }
26
28
  /** Anything that carries JSON-RPC text both ways: a local WebSocket, or an encrypted tunnel through the gateway. */
27
29
  export interface RpcTransport {
@@ -52,6 +52,16 @@ export class HostRpcServer {
52
52
  this.computerPreview = new ComputerPreviewServer(hub.previews);
53
53
  const terminals = options.terminals;
54
54
  this.handlers = {
55
+ "liveActivities.subscribe": (params) => {
56
+ if (!options.liveActivities)
57
+ throw RpcError.app("not_supported", "电脑端尚不支持实时活动推送,请更新 CLI");
58
+ options.liveActivities.subscribe(params);
59
+ return {};
60
+ },
61
+ "liveActivities.unsubscribe": async (params) => {
62
+ await options.liveActivities?.unsubscribe(params.activityId);
63
+ return {};
64
+ },
55
65
  "agents.editor": (params) => hub.editor(params),
56
66
  "agents.acp": (params) => hub.acpInfo(params.agent, params.sessionId),
57
67
  "agents.pending": () => ({ interactions: hub.pendingInteractions() }),
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/rpc/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/rpc/server.ts"],"names":[],"mappings":"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"}