tellrun 1.1.2 → 1.2.4

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.
@@ -1,83 +1,22 @@
1
- import { randomUUID } from "node:crypto";
2
- import { chmodSync, mkdirSync, readdirSync, readFileSync, rmdirSync, rmSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
1
+ import { chmodSync, mkdirSync, readFileSync } from "node:fs";
3
2
  import { dirname, join } from "node:path";
4
3
  import { appDirectory } from "../config.js";
5
4
  import { writeJson } from "./json.js";
5
+ import { acquireLock } from "./lock.js";
6
6
  import { activeTaskStatuses, stateSchema } from "./schema.js";
7
7
  /** 打开文件状态并取得单实例锁;所有业务写入统一替换 state.json。 */
8
8
  export function openStore(path = join(appDirectory, "state.json")) {
9
9
  mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
10
10
  if (dirname(path) === appDirectory)
11
11
  chmodSync(appDirectory, 0o700);
12
- const lock = `${path}.lock`;
13
- const owner = `${process.pid}-${randomUUID()}`;
14
- let owned = false;
12
+ const release = acquireLock(path);
15
13
  let usable = true;
16
14
  let updating = false;
17
15
  /** 流式预览只保留内存中的最新片段,不为每个文本增量写磁盘。 */
18
16
  let draft;
19
- /** 只删除本实例的所有权文件;非空目录不能被另一个退出中的实例移除。 */
20
- function release() {
21
- if (!owned)
22
- return;
23
- rmSync(join(lock, owner), { force: true });
24
- owned = false;
25
- try {
26
- rmdirSync(lock);
27
- }
28
- catch (error) {
29
- if (!(error instanceof Error &&
30
- "code" in error &&
31
- ["ENOENT", "ENOTEMPTY"].includes(String(error.code))))
32
- throw error;
33
- }
34
- }
17
+ /** 单个发送循环正在处理的回复;交互关闭时仍需保留它的消息清理关联。 */
18
+ let delivering;
35
19
  try {
36
- /** mkdir 竞争唯一写入者;回收旧锁必须先确认 PID 已退出,再删除该所有权文件。 */
37
- for (let attempt = 0; attempt < 3 && !owned; attempt++) {
38
- try {
39
- mkdirSync(lock, { mode: 0o700 });
40
- writeFileSync(join(lock, owner), "", { flag: "wx", mode: 0o600 });
41
- owned = true;
42
- if (readdirSync(lock).length !== 1)
43
- throw new Error("State lock busy. Try again.");
44
- }
45
- catch (error) {
46
- if (owned || !(error instanceof Error && "code" in error && error.code === "EEXIST"))
47
- throw error;
48
- try {
49
- const owners = readdirSync(lock);
50
- if (owners.length === 0 && Date.now() - statSync(lock).mtimeMs > 30_000) {
51
- rmdirSync(lock);
52
- continue;
53
- }
54
- const previous = owners.length === 1 ? owners[0] : undefined;
55
- const pid = previous?.match(/^([1-9]\d*)-[0-9a-f-]+$/)?.[1];
56
- if (!previous || !pid)
57
- throw new Error("State lock initializing or invalid. Check for another instance.");
58
- try {
59
- process.kill(Number(pid), 0);
60
- }
61
- catch (error) {
62
- if (!(error instanceof Error && "code" in error && error.code === "ESRCH"))
63
- throw error;
64
- /** 只有成功移除旧所有权文件的实例才能回收目录,避免竞争时删除新锁。 */
65
- unlinkSync(join(lock, previous));
66
- rmdirSync(lock);
67
- continue;
68
- }
69
- throw new Error("Another Tellrun instance is running. Stop it first.");
70
- }
71
- catch (error) {
72
- if (!(error instanceof Error &&
73
- "code" in error &&
74
- ["ENOENT", "ENOTEMPTY"].includes(String(error.code))))
75
- throw error;
76
- }
77
- }
78
- }
79
- if (!owned)
80
- throw new Error("Cannot acquire state lock. Try again.");
81
20
  let state;
82
21
  try {
83
22
  const contents = readFileSync(path, "utf8");
@@ -92,9 +31,11 @@ export function openStore(path = join(appDirectory, "state.json")) {
92
31
  catch (error) {
93
32
  if (!(error instanceof Error && "code" in error && error.code === "ENOENT"))
94
33
  throw error;
95
- state = { channels: [], inboundUpdates: [], tasks: [], outbox: [] };
34
+ state = { channels: [], inboundUpdates: [], tasks: [], interactions: [], outbox: [] };
96
35
  writeJson(path, state);
97
36
  }
37
+ /** 交互撤回可能清空发送队列;实例内保持递增,避免迟到发送回执删除新消息。 */
38
+ let replyId = state.outbox.reduce((max, item) => Math.max(max, item.id), 0);
98
39
  /** 一次业务操作只保存一个快照;嵌套操作合并写入,失败时回滚内存并停止后续写入。 */
99
40
  function update(action) {
100
41
  if (!usable)
@@ -106,6 +47,14 @@ export function openStore(path = join(appDirectory, "state.json")) {
106
47
  updating = true;
107
48
  try {
108
49
  const result = action();
50
+ /** state 只保留运行所需记录;发送中的交互及待发送编辑不能提前回收。 */
51
+ state.interactions = state.interactions.filter((item) => item.status !== "closed" ||
52
+ item.id === delivering?.interactionId ||
53
+ state.outbox.some((reply) => reply.interactionId === item.id));
54
+ const latest = new Set(state.channels.map((channel) => state.tasks.findLast((task) => task.channelId === channel.id && !activeTaskStatuses.has(task.status))?.id));
55
+ state.tasks = state.tasks.filter((task) => activeTaskStatuses.has(task.status) ||
56
+ latest.has(task.id) ||
57
+ state.interactions.some((item) => item.taskId === task.id));
109
58
  try {
110
59
  writeJson(path, state);
111
60
  }
@@ -124,21 +73,56 @@ export function openStore(path = join(appDirectory, "state.json")) {
124
73
  }
125
74
  }
126
75
  /** 无回复时跳过入队;其余按 Unicode 字符拆分,和触发它的状态变更一起保存。 */
127
- function enqueueReply(channelId, text) {
76
+ function enqueueReply(channelId, text, delivery = {}) {
128
77
  if (text === undefined)
129
78
  return;
130
- const parts = text.match(/[\s\S]{1,2000}/gu) ?? ["(No text reply)"];
79
+ const parts = delivery.messageId
80
+ ? [text]
81
+ : (text.match(/[\s\S]{1,2000}/gu) ?? ["(No text reply)"]);
131
82
  for (const [index, part] of parts.entries()) {
132
83
  state.outbox.push({
133
- id: state.outbox.reduce((max, item) => Math.max(max, item.id), 0) + 1,
84
+ id: ++replyId,
134
85
  channelId,
135
86
  text: parts.length > 1 ? `(${index + 1}/${parts.length})\n${part}` : part,
136
87
  attempts: 0,
137
88
  retryAt: Date.now(),
89
+ ...delivery,
90
+ ...(delivery.interactionId && !delivery.messageId
91
+ ? { promptEnd: index === parts.length - 1 }
92
+ : {}),
138
93
  });
139
94
  }
140
95
  }
141
- /** 终态与最终回复一起保存,迟到事件不能覆盖已完成结果。 */
96
+ /** 关闭请求或单个已答问题;撤回未发送提示,已发送消息保留正文并移除按钮。 */
97
+ function closeInteraction(id, reason, questionIndex) {
98
+ const interaction = state.interactions.find((item) => item.id === id);
99
+ if (!interaction || interaction.status === "closed")
100
+ return;
101
+ update(() => {
102
+ const interaction = state.interactions.find((item) => item.id === id);
103
+ const task = state.tasks.find((task) => task.id === interaction?.taskId);
104
+ if (!interaction || !task)
105
+ return;
106
+ if (questionIndex === undefined) {
107
+ interaction.status = "closed";
108
+ interaction.resolution = reason;
109
+ }
110
+ state.outbox = state.outbox.filter((reply) => reply.interactionId !== id ||
111
+ (questionIndex !== undefined && reply.questionIndex !== questionIndex));
112
+ for (const message of interaction.messages) {
113
+ if (questionIndex !== undefined && message.questionIndex !== questionIndex)
114
+ continue;
115
+ enqueueReply(task.channelId, `${message.text}\n\n${reason}`, {
116
+ interactionId: id,
117
+ messageId: message.messageId,
118
+ ...(message.questionIndex !== undefined
119
+ ? { questionIndex: message.questionIndex }
120
+ : {}),
121
+ });
122
+ }
123
+ });
124
+ }
125
+ /** 终态与最终回复一起保存,成功时只发送正文;迟到事件不能覆盖已完成结果。 */
142
126
  function finishTask(id, result) {
143
127
  if (!state.tasks.some((task) => task.id === id && activeTaskStatuses.has(task.status)))
144
128
  return;
@@ -147,17 +131,20 @@ export function openStore(path = join(appDirectory, "state.json")) {
147
131
  if (!task)
148
132
  throw new Error("Task not found.");
149
133
  Object.assign(task, { status: result.status, result: result.text });
134
+ for (const interaction of state.interactions.filter((item) => item.taskId === id))
135
+ closeInteraction(interaction.id, "Task ended. Request closed.");
150
136
  if (result.status === "interrupted") {
151
137
  const channel = state.channels.find((channel) => channel.id === task.channelId);
152
138
  if (channel)
153
139
  channel.paused = true;
154
140
  }
155
- enqueueReply(task.channelId, `Task #${id} ${{
156
- completed: "Completed",
157
- failed: "Failed",
158
- cancelled: "Stopped",
159
- interrupted: "Unconfirmed",
160
- }[result.status]}\n${result.text}`);
141
+ enqueueReply(task.channelId, result.status === "completed"
142
+ ? result.text
143
+ : `Task #${id} ${{
144
+ failed: "Failed",
145
+ cancelled: "Stopped",
146
+ interrupted: "Unconfirmed",
147
+ }[result.status]}\n${result.text}`);
161
148
  for (const [index, input] of task.inputs.entries()) {
162
149
  if (input.status !== "pending" && input.status !== "sending")
163
150
  continue;
@@ -168,6 +155,20 @@ export function openStore(path = join(appDirectory, "state.json")) {
168
155
  if (draft?.taskId === id)
169
156
  draft = undefined;
170
157
  }
158
+ /** 命令与交互按钮共用停止逻辑;先使交互失效,再由核心层请求中断。 */
159
+ function cancelTask(id) {
160
+ if (state.tasks.find((task) => task.id === id)?.status === "queued") {
161
+ finishTask(id, { status: "cancelled", text: "Cancelled before starting." });
162
+ }
163
+ else
164
+ update(() => {
165
+ const task = state.tasks.find((task) => task.id === id && activeTaskStatuses.has(task.status));
166
+ if (task)
167
+ task.status = "cancelling";
168
+ for (const interaction of state.interactions.filter((item) => item.taskId === id))
169
+ closeInteraction(interaction.id, "Stopping. Request closed.");
170
+ });
171
+ }
171
172
  return {
172
173
  /** 去重标识、任务和必要回复合并保存,成功返回后才能确认入站事件。 */
173
174
  accept(message, handle) {
@@ -176,8 +177,8 @@ export function openStore(path = join(appDirectory, "state.json")) {
176
177
  channel.chatId === message.channel.chatId);
177
178
  if (existing &&
178
179
  state.inboundUpdates.some((item) => item.channelId === existing.id && item.eventId === message.eventId))
179
- return;
180
- update(() => {
180
+ return message.content.type === "interaction" ? "Already handled." : undefined;
181
+ return update(() => {
181
182
  let channel = state.channels.find((channel) => channel.id === existing?.id);
182
183
  if (!channel) {
183
184
  channel = {
@@ -194,8 +195,24 @@ export function openStore(path = join(appDirectory, "state.json")) {
194
195
  channelId: channel.id,
195
196
  eventId: message.eventId,
196
197
  });
197
- enqueueReply(channel.id, handle(channel));
198
+ const reply = handle(channel);
199
+ if (message.content.type !== "interaction")
200
+ enqueueReply(channel.id, reply);
201
+ return reply;
202
+ });
203
+ },
204
+ /** 成功拉取后才能回收已确认更新;空响应也说明服务端已无可重投记录。 */
205
+ confirmUpdates(accountId, offset, empty) {
206
+ const pending = state.inboundUpdates.filter((item) => {
207
+ const channel = state.channels.find((channel) => channel.id === item.channelId);
208
+ return (channel?.platform !== "telegram" ||
209
+ channel.accountId !== accountId ||
210
+ (!empty && !(Number(item.eventId) < offset)));
198
211
  });
212
+ if (pending.length !== state.inboundUpdates.length)
213
+ update(() => {
214
+ state.inboundUpdates = pending;
215
+ });
199
216
  },
200
217
  /** 新会话或目录变化只影响后续任务,已保存任务仍使用自己的快照。 */
201
218
  setSession(channelId, cwd) {
@@ -215,7 +232,13 @@ export function openStore(path = join(appDirectory, "state.json")) {
215
232
  },
216
233
  /** 返回快照,避免调用方直接修改内存中的持久状态。 */
217
234
  activeTask() {
218
- return structuredClone(state.tasks.find((task) => activeTaskStatuses.has(task.status)));
235
+ const task = state.tasks.find((task) => activeTaskStatuses.has(task.status));
236
+ return task
237
+ ? structuredClone({
238
+ ...task,
239
+ interactions: state.interactions.filter((item) => item.taskId === task.id && item.status !== "closed"),
240
+ })
241
+ : undefined;
219
242
  },
220
243
  /** 限制预览为末尾 2000 个 Unicode 字符,完整结果仍由最终回复保存。 */
221
244
  setDraft(id, text) {
@@ -226,6 +249,8 @@ export function openStore(path = join(appDirectory, "state.json")) {
226
249
  pendingDraft(accountId, userId) {
227
250
  if (!draft?.text.trim())
228
251
  return;
252
+ if (state.interactions.some((item) => item.taskId === draft?.taskId && item.blocking && item.status !== "closed"))
253
+ return;
229
254
  const task = state.tasks.find((task) => task.id === draft?.taskId && task.status === "running");
230
255
  const channel = state.channels.find((channel) => channel.id === task?.channelId);
231
256
  if (channel?.platform === "telegram" &&
@@ -235,7 +260,7 @@ export function openStore(path = join(appDirectory, "state.json")) {
235
260
  },
236
261
  /** 最近结果按聊天隔离,供 /last 再次查看。 */
237
262
  lastTask(channelId) {
238
- return structuredClone(state.tasks.findLast((task) => task.channelId === channelId));
263
+ return structuredClone(state.tasks.findLast((task) => task.channelId === channelId && !activeTaskStatuses.has(task.status)) ?? state.tasks.findLast((task) => task.channelId === channelId));
239
264
  },
240
265
  /** 接收时固定目录、会话与输入,限制全局只有一个未结束任务。 */
241
266
  createTask(channel, prompt) {
@@ -334,19 +359,130 @@ export function openStore(path = join(appDirectory, "state.json")) {
334
359
  task.status = "running";
335
360
  });
336
361
  },
337
- /** 未派发任务直接取消;其余等待 Agent 确认终态。 */
338
- cancelTask(id) {
339
- if (state.tasks.find((task) => task.id === id)?.status === "queued") {
340
- finishTask(id, { status: "cancelled", text: "Cancelled before starting." });
362
+ cancelTask,
363
+ finishTask,
364
+ /** 交互展示与任务关联一起保存;多题分别发送,任意一段都能明确回复。 */
365
+ addInteraction(taskId, request) {
366
+ update(() => {
367
+ const task = state.tasks.find((task) => task.id === taskId && task.status === "running");
368
+ if (!task || state.interactions.some((item) => item.id === request.id))
369
+ return;
370
+ state.interactions.push({
371
+ ...request,
372
+ taskId,
373
+ questions: request.questions.map((question) => ({ ...question, answer: null })),
374
+ decision: null,
375
+ status: "pending",
376
+ resolution: null,
377
+ messages: [],
378
+ });
379
+ if (request.kind === "approval") {
380
+ enqueueReply(task.channelId, `Task #${taskId} · Approval\n${request.text}\n\nChoose below.`, { interactionId: request.id });
381
+ }
382
+ else {
383
+ for (const [index, question] of request.questions.entries())
384
+ enqueueReply(task.channelId, `Task #${taskId} · Question ${index + 1}/${request.questions.length}\n${question.header}\n${question.question}${question.options.map((option, i) => `\n\n${i + 1}. ${option.label}\n${option.description}`).join("")}\n\n${question.allowText ? "Pick an option or reply to this message." : "Pick an option or reply with its number or label."}\nAnswer all questions to submit.`, { interactionId: request.id, questionIndex: index });
385
+ }
386
+ });
387
+ },
388
+ /** 与入站去重同一事务领取选择;不把普通消息或旧问题回复误作当前任务输入。 */
389
+ answerInteraction(channelId, content) {
390
+ const interaction = state.interactions.find((item) => content.type === "interaction"
391
+ ? item.id === content.id
392
+ : item.messages.some((message) => message.messageId === content.replyToMessageId) &&
393
+ state.tasks.some((task) => task.id === item.taskId && task.channelId === channelId));
394
+ if (!interaction)
395
+ return content.type === "interaction"
396
+ ? "Request expired."
397
+ : content.replyToMessageId !== undefined
398
+ ? "Send a new message to continue."
399
+ : undefined;
400
+ const task = state.tasks.find((task) => task.id === interaction.taskId && task.channelId === channelId);
401
+ const message = interaction.messages.find((item) => item.messageId ===
402
+ (content.type === "interaction" ? content.messageId : content.replyToMessageId));
403
+ if (task?.status !== "running" ||
404
+ !message ||
405
+ interaction.status !== "pending" ||
406
+ interaction.expiresAt <= Date.now())
407
+ return "Request closed. Check /status.";
408
+ if (content.type === "interaction" && content.action === "stop") {
409
+ update(() => {
410
+ const channel = state.channels.find((channel) => channel.id === channelId);
411
+ if (channel)
412
+ channel.paused = true;
413
+ cancelTask(task.id);
414
+ });
415
+ return "Stopping. Wait for the result.";
341
416
  }
342
- else
417
+ if (interaction.kind === "approval") {
418
+ if (content.type !== "interaction" ||
419
+ (content.action !== "accept" && content.action !== "decline") ||
420
+ !interaction.choices.includes(content.action))
421
+ return "Use the approval buttons.";
343
422
  update(() => {
344
- const task = state.tasks.find((task) => task.id === id && activeTaskStatuses.has(task.status));
345
- if (task)
346
- task.status = "cancelling";
423
+ const current = state.interactions.find((item) => item.id === interaction.id);
424
+ if (!current)
425
+ return;
426
+ current.decision = content.action;
427
+ current.status = "ready";
347
428
  });
429
+ return "Saved. Submitting...";
430
+ }
431
+ const question = message.questionIndex === undefined
432
+ ? undefined
433
+ : interaction.questions[message.questionIndex];
434
+ if (!question || question.answer !== null)
435
+ return "Question closed.";
436
+ let answer;
437
+ if (content.type === "interaction") {
438
+ if (content.action !== "option" ||
439
+ content.questionIndex !== message.questionIndex ||
440
+ content.optionIndex === undefined)
441
+ return "Invalid option.";
442
+ answer = question.options[content.optionIndex]?.label;
443
+ }
444
+ else {
445
+ answer = content.text.trim();
446
+ answer =
447
+ question.options.find((option, index) => String(index + 1) === answer || option.label === answer)?.label ?? (question.allowText ? answer : undefined);
448
+ }
449
+ if (!answer)
450
+ return "Invalid answer. Try again.";
451
+ update(() => {
452
+ const current = state.interactions.find((item) => item.id === interaction.id);
453
+ const question = current?.questions[message.questionIndex ?? -1];
454
+ if (!current || !question)
455
+ return;
456
+ question.answer = answer;
457
+ closeInteraction(interaction.id, "Answer saved.", message.questionIndex);
458
+ if (current.questions.every((question) => question.answer !== null))
459
+ current.status = "ready";
460
+ });
461
+ return "Answer saved.";
348
462
  },
349
- finishTask,
463
+ /** 提交前持久化 sending;重启不会重放已经领取的批准或答案。 */
464
+ claimInteraction(taskId) {
465
+ const interaction = state.interactions.find((item) => item.taskId === taskId && item.status === "ready" && item.expiresAt > Date.now());
466
+ if (!interaction ||
467
+ !state.tasks.some((task) => task.id === taskId && task.status === "running"))
468
+ return;
469
+ return update(() => {
470
+ const current = state.interactions.find((item) => item.id === interaction.id);
471
+ if (!current)
472
+ return;
473
+ current.status = "sending";
474
+ const answer = current.kind === "approval" && current.decision
475
+ ? { decision: current.decision }
476
+ : {
477
+ answers: Object.fromEntries(current.questions.map((question) => [
478
+ question.id,
479
+ { answers: [question.answer ?? ""] },
480
+ ])),
481
+ };
482
+ return { id: current.id, answer };
483
+ });
484
+ },
485
+ closeInteraction,
350
486
  /** 结果不确定的任务暂停并通知用户,不自动重新派发。 */
351
487
  recoverTasks() {
352
488
  for (const task of state.tasks.filter((task) => activeTaskStatuses.has(task.status) && task.status !== "queued")) {
@@ -355,29 +491,73 @@ export function openStore(path = join(appDirectory, "state.json")) {
355
491
  text: "Service restarted; task result unknown. Check the project, then /resume and send a new task.",
356
492
  });
357
493
  }
494
+ for (const interaction of state.interactions)
495
+ closeInteraction(interaction.id, "Service restarted. Request closed.");
358
496
  },
359
- /** 按机器人与授权用户取最早回复,重试保持发送顺序。 */
360
- pendingReply(accountId, userId) {
497
+ /** 按机器人与授权用户领取最早回复,内存关联保留到发送成功或失败。 */
498
+ claimReply(accountId, userId) {
499
+ if (delivering)
500
+ return;
361
501
  for (const reply of state.outbox) {
502
+ const interaction = state.interactions.find((item) => item.id === reply.interactionId);
503
+ if (reply.interactionId &&
504
+ !reply.messageId &&
505
+ (interaction?.status !== "pending" ||
506
+ interaction.expiresAt <= Date.now() ||
507
+ (reply.questionIndex !== undefined &&
508
+ interaction.questions[reply.questionIndex]?.answer !== null)))
509
+ continue;
362
510
  const channel = state.channels.find((channel) => channel.id === reply.channelId);
363
511
  if (channel?.platform === "telegram" &&
364
512
  channel.accountId === accountId &&
365
513
  channel.userId === userId) {
366
- return reply.retryAt <= Date.now()
367
- ? structuredClone({ ...reply, chatId: channel.chatId })
368
- : undefined;
514
+ if (reply.retryAt > Date.now())
515
+ return;
516
+ delivering = structuredClone(reply);
517
+ return structuredClone({
518
+ ...reply,
519
+ chatId: channel.chatId,
520
+ interaction,
521
+ });
369
522
  }
370
523
  }
371
524
  },
372
- /** 发送成功或永久拒绝后移出发送队列,任务结果仍保留。 */
373
- removeReply(id) {
525
+ /** 发送成功或永久拒绝后移出队列;/last 只保留每个聊天的最近结果。 */
526
+ removeReply(id, delivery) {
374
527
  update(() => {
528
+ if (delivering?.id === id)
529
+ delivering = undefined;
375
530
  state.outbox = state.outbox.filter((reply) => reply.id !== id);
531
+ const interaction = state.interactions.find((item) => item.id === delivery?.interactionId);
532
+ const task = state.tasks.find((task) => task.id === interaction?.taskId);
533
+ if (interaction && task && delivery) {
534
+ interaction.messages.push({
535
+ messageId: delivery.messageId,
536
+ text: delivery.text,
537
+ ...(delivery.questionIndex !== undefined
538
+ ? { questionIndex: delivery.questionIndex }
539
+ : {}),
540
+ });
541
+ /** 发送途中请求可能已关闭或该问题已回答;迟到的消息也必须移除按钮。 */
542
+ if (interaction.status !== "pending" ||
543
+ interaction.expiresAt <= Date.now() ||
544
+ (delivery.questionIndex !== undefined &&
545
+ interaction.questions[delivery.questionIndex]?.answer !== null))
546
+ enqueueReply(task.channelId, `${delivery.text}\n\n${interaction.resolution ?? "Request closed."}`, {
547
+ interactionId: interaction.id,
548
+ messageId: delivery.messageId,
549
+ ...(delivery.questionIndex !== undefined
550
+ ? { questionIndex: delivery.questionIndex }
551
+ : {}),
552
+ });
553
+ }
376
554
  });
377
555
  },
378
556
  /** 发送失败只更新回复的重试信息,不影响任务执行状态。 */
379
557
  retryReply(id, seconds) {
380
558
  update(() => {
559
+ if (delivering?.id === id)
560
+ delivering = undefined;
381
561
  const reply = state.outbox.find((reply) => reply.id === id);
382
562
  if (reply)
383
563
  Object.assign(reply, {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/storage/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/storage/store.ts"],"names":[],"mappings":"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"}
package/dist/systemd.js CHANGED
@@ -27,13 +27,7 @@ async function systemctl(...args) {
27
27
  }
28
28
  }
29
29
  /** CLI 与配置向导共用后台生命周期;不加载运行状态或 Telegram 业务入口。 */
30
- export async function manageService(action, options = {}) {
31
- if (action === "status") {
32
- console.log(`Config: ${join(appDirectory, "config.json")}\nState: ${join(appDirectory, "state.json")}`);
33
- }
34
- if (process.platform !== "linux") {
35
- throw new Error("Background mode requires Linux systemd. Use tellrun run instead.");
36
- }
30
+ export async function manageSystemdService(action, options) {
37
31
  if (action === "logs") {
38
32
  await new Promise((resolve, reject) => {
39
33
  const child = spawn("journalctl", [