@keyou007/agent-bot 0.1.14-alpha.1 → 0.1.14-alpha.2

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 (67) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/README.md +42 -12
  3. package/README.zh.md +42 -12
  4. package/config.example.yaml +1 -1
  5. package/dist/cli/AutostartManager.js +431 -0
  6. package/dist/cli/AutostartManager.js.map +1 -0
  7. package/dist/cli/FeishuAppConfiguration.js +17 -13
  8. package/dist/cli/FeishuAppConfiguration.js.map +1 -1
  9. package/dist/cli/Initializer.js +35 -0
  10. package/dist/cli/Initializer.js.map +1 -1
  11. package/dist/cli/SelfUpdateRunner.js +552 -0
  12. package/dist/cli/SelfUpdateRunner.js.map +1 -0
  13. package/dist/cli/SelfUpdater.js +431 -0
  14. package/dist/cli/SelfUpdater.js.map +1 -0
  15. package/dist/cli/autostartOutput.js +63 -0
  16. package/dist/cli/autostartOutput.js.map +1 -0
  17. package/dist/cli/controlProtocol.js.map +1 -1
  18. package/dist/cli/help.js +92 -18
  19. package/dist/cli/help.js.map +1 -1
  20. package/dist/cli/taskGroupOptions.js +14 -11
  21. package/dist/cli/taskGroupOptions.js.map +1 -1
  22. package/dist/cli/taskListOutput.js +3 -0
  23. package/dist/cli/taskListOutput.js.map +1 -1
  24. package/dist/cli/taskTarget.js +99 -0
  25. package/dist/cli/taskTarget.js.map +1 -0
  26. package/dist/cli.js +643 -58
  27. package/dist/cli.js.map +1 -1
  28. package/dist/codex/CodexRuntime.js +8 -2
  29. package/dist/codex/CodexRuntime.js.map +1 -1
  30. package/dist/commands/CommandRouter.js +7 -1
  31. package/dist/commands/CommandRouter.js.map +1 -1
  32. package/dist/feishu/CardRenderer.js +172 -23
  33. package/dist/feishu/CardRenderer.js.map +1 -1
  34. package/dist/feishu/FeishuMarkdown.js +25 -1
  35. package/dist/feishu/FeishuMarkdown.js.map +1 -1
  36. package/dist/index.js +134 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/proxy/ProxySessionController.js +436 -12
  39. package/dist/proxy/ProxySessionController.js.map +1 -1
  40. package/dist/state/StateStore.js +18 -0
  41. package/dist/state/StateStore.js.map +1 -1
  42. package/docs/technical-reference.md +17 -7
  43. package/docs/technical-reference.zh.md +17 -7
  44. package/npm-shrinkwrap.json +2 -2
  45. package/package.json +2 -2
  46. package/skills/agent-bot/SKILL.md +107 -188
  47. package/src/cli/AutostartManager.ts +579 -0
  48. package/src/cli/FeishuAppConfiguration.ts +22 -7
  49. package/src/cli/Initializer.ts +57 -0
  50. package/src/cli/SelfUpdateRunner.ts +817 -0
  51. package/src/cli/SelfUpdater.ts +688 -0
  52. package/src/cli/autostartOutput.ts +75 -0
  53. package/src/cli/controlProtocol.ts +111 -1
  54. package/src/cli/help.ts +92 -18
  55. package/src/cli/taskGroupOptions.ts +27 -17
  56. package/src/cli/taskListOutput.ts +10 -0
  57. package/src/cli/taskTarget.ts +168 -0
  58. package/src/cli.ts +781 -65
  59. package/src/codex/CodexRuntime.ts +8 -2
  60. package/src/commands/CommandRouter.ts +6 -1
  61. package/src/commands/commandTypes.ts +1 -0
  62. package/src/feishu/CardRenderer.ts +199 -23
  63. package/src/feishu/FeishuMarkdown.ts +27 -1
  64. package/src/index.ts +172 -2
  65. package/src/proxy/ProxySessionController.ts +532 -15
  66. package/src/runtime/types.ts +1 -0
  67. package/src/state/StateStore.ts +19 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,11 @@ const HELP_COMMAND_SECTIONS = [
71
71
  requiresArgument: true,
72
72
  },
73
73
  { command: "/sessions", usage: "[关键词]", description: "查找本机任务" },
74
+ {
75
+ command: "/archive",
76
+ usage: "[序号或任务 ID]",
77
+ description: "归档当前或指定任务",
78
+ },
74
79
  {
75
80
  command: "/switch",
76
81
  usage: "[序号或任务 ID]",
@@ -413,6 +418,14 @@ export class ProxySessionController {
413
418
  await this.createFeishuGroupFromReference(contextKey, sessionId, scopedAction.userId);
414
419
  await this.refreshSessionsCardFromAction(scopedAction);
415
420
  }
421
+ else if (kind === "session_archive") {
422
+ const sessionId = String(scopedAction.value.sessionId ?? "");
423
+ await this.archiveSessionReference(contextKey, sessionId, {
424
+ announce: true,
425
+ source: "sessions_card",
426
+ });
427
+ await this.refreshSessionsCardFromAction(scopedAction);
428
+ }
416
429
  else if (kind === "session_stop") {
417
430
  const sessionId = String(scopedAction.value.sessionId ?? "");
418
431
  await this.stopSessionReference(contextKey, sessionId);
@@ -557,6 +570,13 @@ export class ProxySessionController {
557
570
  await this.cancelSession(record);
558
571
  return `Task stop requested: ${record.title ?? record.remoteSessionId ?? record.localSessionId}`;
559
572
  }
573
+ async controlArchiveTask(localSessionId) {
574
+ const record = this.requireControlSession(localSessionId);
575
+ return this.archiveSessionReference(this.controlSessionContextKey(record), localSessionId, {
576
+ announce: false,
577
+ source: "cli",
578
+ });
579
+ }
560
580
  async controlGetTaskStatus(localSessionId) {
561
581
  const record = this.store.getSession(localSessionId);
562
582
  if (!record)
@@ -706,6 +726,314 @@ export class ProxySessionController {
706
726
  task: forked.task,
707
727
  };
708
728
  }
729
+ async controlCreateTask(localSessionId, requestedTitle, requestedProjectCwd, forceProjectless = false, requestedAgentName) {
730
+ const source = this.requireControlSession(localSessionId);
731
+ const contextKey = this.controlSessionContextKey(source);
732
+ const context = this.store.getOrCreateUserContext(contextKey, this.config.defaults.agent);
733
+ const agentName = requestedAgentName?.trim() || context.defaultAgent;
734
+ const agent = this.ensureAgent(agentName);
735
+ if (forceProjectless && agent.kind !== "app-server") {
736
+ throw new Error("task new --nodir is only available for App Server agents.");
737
+ }
738
+ const replyTarget = this.controlSessionReplyTarget(source);
739
+ const cwd = forceProjectless
740
+ ? undefined
741
+ : requestedProjectCwd === undefined
742
+ ? detectProjectlessWorkspace(source.cwd)
743
+ ? agent.kind === "app-server" ? undefined : createProjectlessWorkspace().cwd
744
+ : source.cwd
745
+ : resolveUserPath(requestedProjectCwd, source.cwd);
746
+ const settings = source.agentName === agentName
747
+ ? {
748
+ modelProvider: source.modelProvider,
749
+ model: source.model,
750
+ reasoningEffort: source.reasoningEffort,
751
+ permissionMode: source.permissionMode,
752
+ }
753
+ : {};
754
+ return this.outbound.withReplyTarget(contextKey, replyTarget, () => this.createSession(contextKey, agentName, cwd, true, false, undefined, undefined, requestedTitle, settings));
755
+ }
756
+ async controlForkTask(localSessionId) {
757
+ const source = this.requireControlSession(localSessionId);
758
+ const contextKey = this.controlSessionContextKey(source);
759
+ const replyTarget = this.controlSessionReplyTarget(source);
760
+ const plan = await this.prepareForkSession(contextKey, source.localSessionId);
761
+ const forked = await this.outbound.withReplyTarget(contextKey, replyTarget, async () => {
762
+ const result = await this.forkSessionIntoContext(contextKey, plan);
763
+ await this.outbound.sendText(contextKey, `已从指定任务${plan.forkedFromHistoricalTurn ? "最近已完成轮次" : ""}创建分支并切换到新任务:${result.session.title
764
+ ? `${result.session.title}(${result.session.remoteSessionId})`
765
+ : result.session.remoteSessionId}`);
766
+ return result;
767
+ });
768
+ return {
769
+ sourceLocalSessionId: source.localSessionId,
770
+ sourceTurnId: plan.lastTurnId,
771
+ task: this.store.getSession(forked.record.localSessionId) ?? forked.record,
772
+ };
773
+ }
774
+ async controlSwitchTask(localSessionId, targetLocalSessionId, previous = false) {
775
+ const anchor = this.requireControlSession(localSessionId);
776
+ const contextKey = this.controlSessionContextKey(anchor);
777
+ const replyTarget = this.controlSessionReplyTarget(anchor);
778
+ const target = previous ? undefined : targetLocalSessionId ?? anchor.localSessionId;
779
+ await this.outbound.withReplyTarget(contextKey, replyTarget, () => this.switchSession(contextKey, target));
780
+ return this.requireCurrentSession(contextKey);
781
+ }
782
+ async controlQueueTaskPrompt(localSessionId, text) {
783
+ const promptText = text.trim();
784
+ if (!promptText)
785
+ throw new Error("The queued Prompt cannot be empty.");
786
+ const record = this.requireControlSession(localSessionId);
787
+ const contextKey = this.controlSessionContextKey(record);
788
+ const replyTarget = this.controlSessionReplyTarget(record);
789
+ const queued = this.persistQueuedPrompt(record.localSessionId, contextKey, promptText, { replyTarget });
790
+ this.store.audit(contextKey, "queued_prompt_added", {
791
+ promptId: queued.promptId,
792
+ localSessionId: record.localSessionId,
793
+ source: "cli",
794
+ });
795
+ const queuedCount = this.store.countQueuedPrompts(record.localSessionId);
796
+ await this.scheduleNextQueuedPrompt(record.localSessionId);
797
+ return { promptId: queued.promptId, queued: queuedCount };
798
+ }
799
+ controlTaskAgent(localSessionId, agentName) {
800
+ const record = this.requireControlSession(localSessionId);
801
+ const contextKey = this.controlSessionContextKey(record);
802
+ const context = this.store.getOrCreateUserContext(contextKey, this.config.defaults.agent);
803
+ if (agentName) {
804
+ this.ensureAgent(agentName);
805
+ this.store.setDefaultAgent(contextKey, agentName);
806
+ }
807
+ return {
808
+ current: agentName ?? context.defaultAgent,
809
+ agents: Object.entries(this.config.agents).map(([name, agent]) => ({ name, title: agent.title })),
810
+ };
811
+ }
812
+ async controlTaskSettings(localSessionId, setting, value) {
813
+ const record = this.requireControlSession(localSessionId);
814
+ const loaded = await this.loadSession(record);
815
+ if (setting && !value?.trim())
816
+ throw new Error(`task ${setting} requires a value.`);
817
+ const nextValue = value?.trim();
818
+ if (setting === "provider" && nextValue) {
819
+ await this.assertModelProvider(loaded, nextValue);
820
+ const models = await loaded.runtime.listModels();
821
+ const model = models.find((candidate) => candidate.id === loaded.session.model)
822
+ ?? models.find((candidate) => candidate.isDefault);
823
+ if (!model)
824
+ throw new Error("The current runtime has no model available for a Provider change.");
825
+ const effort = model.supportedReasoningEfforts.some((candidate) => candidate.value === loaded.session.reasoningEffort)
826
+ ? loaded.session.reasoningEffort
827
+ : model.defaultReasoningEffort ?? model.supportedReasoningEfforts[0]?.value;
828
+ if (!effort)
829
+ throw new Error(`Model ${model.id} has no reasoning effort available for a Provider change.`);
830
+ if (!loaded.runtime.setExecutionSettings)
831
+ throw new Error("The current runtime does not support Provider settings.");
832
+ const updated = await loaded.runtime.setExecutionSettings(record.localSessionId, {
833
+ modelProvider: nextValue,
834
+ model: model.id,
835
+ reasoningEffort: effort,
836
+ permissionMode: loaded.session.permissionMode,
837
+ });
838
+ this.store.updateRuntimeSession(record.localSessionId, {
839
+ modelProvider: updated.modelProvider ?? nextValue,
840
+ model: updated.model ?? model.id,
841
+ reasoningEffort: updated.reasoningEffort ?? effort,
842
+ permissionMode: updated.permissionMode,
843
+ });
844
+ }
845
+ else if (setting === "model" && nextValue) {
846
+ const models = await loaded.runtime.listModels();
847
+ const selected = models.find((candidate) => candidate.id === nextValue);
848
+ if (!selected)
849
+ throw new Error(`Unknown model: ${nextValue}`);
850
+ const currentEffort = loaded.session.reasoningEffort;
851
+ const nextEffort = currentEffort && selected.supportedReasoningEfforts.some((candidate) => candidate.value === currentEffort)
852
+ ? currentEffort
853
+ : selected.defaultReasoningEffort;
854
+ await loaded.runtime.setModel(record.localSessionId, nextValue);
855
+ if (nextEffort && nextEffort !== currentEffort) {
856
+ await loaded.runtime.setReasoningEffort(record.localSessionId, nextEffort);
857
+ }
858
+ this.store.updateRuntimeSession(record.localSessionId, { model: nextValue, reasoningEffort: nextEffort });
859
+ }
860
+ else if (setting === "thinking" && nextValue) {
861
+ const models = await loaded.runtime.listModels();
862
+ const currentModel = models.find((candidate) => candidate.id === loaded.session.model)
863
+ ?? models.find((candidate) => candidate.isDefault);
864
+ if (!currentModel)
865
+ throw new Error("The current runtime has no model with configurable reasoning effort.");
866
+ if (!currentModel.supportedReasoningEfforts.some((candidate) => candidate.value === nextValue)) {
867
+ const supported = currentModel.supportedReasoningEfforts.map((candidate) => candidate.value).join(", ") || "none";
868
+ throw new Error(`Unsupported reasoning effort: ${nextValue}. Supported values: ${supported}.`);
869
+ }
870
+ await loaded.runtime.setReasoningEffort(record.localSessionId, nextValue);
871
+ this.store.updateRuntimeSession(record.localSessionId, { reasoningEffort: nextValue });
872
+ }
873
+ else if (setting === "permissions" && nextValue) {
874
+ if (nextValue !== "auto" && nextValue !== "confirm") {
875
+ throw new Error("task permissions accepts auto or confirm.");
876
+ }
877
+ await loaded.runtime.setPermissionMode(record.localSessionId, nextValue);
878
+ this.store.updateRuntimeSession(record.localSessionId, { permissionMode: nextValue });
879
+ }
880
+ const session = this.store.getSession(record.localSessionId) ?? record;
881
+ const models = await loaded.runtime.listModels();
882
+ const currentModel = models.find((candidate) => candidate.id === session.model)
883
+ ?? models.find((candidate) => candidate.isDefault);
884
+ const providers = loaded.runtime.listModelProviders
885
+ ? await loaded.runtime.listModelProviders()
886
+ : [];
887
+ return {
888
+ session,
889
+ providers,
890
+ models,
891
+ reasoningOptions: currentModel?.supportedReasoningEfforts ?? [],
892
+ permissionModes: ["auto", "confirm"],
893
+ };
894
+ }
895
+ async controlTaskGoal(localSessionId, action, objective) {
896
+ const record = this.requireControlSession(localSessionId);
897
+ const loaded = await this.loadSession(record);
898
+ if (loaded.runtime.kind !== "codex" || !loaded.runtime.getGoal || !loaded.runtime.setGoal || !loaded.runtime.clearGoal) {
899
+ throw new Error("The current Agent does not support Goal mode.");
900
+ }
901
+ if (action === "show")
902
+ return { goal: await loaded.runtime.getGoal(record.localSessionId) };
903
+ if (action === "clear")
904
+ return { cleared: await loaded.runtime.clearGoal(record.localSessionId) };
905
+ const current = await loaded.runtime.getGoal(record.localSessionId);
906
+ if (action === "pause" || action === "resume") {
907
+ if (!current)
908
+ throw new Error("The task has no Goal.");
909
+ return { goal: await loaded.runtime.setGoal(record.localSessionId, { status: action === "pause" ? "paused" : "active" }) };
910
+ }
911
+ const nextObjective = objective?.trim();
912
+ if (!nextObjective)
913
+ throw new Error(`task goal ${action} requires an objective.`);
914
+ validateGoalObjective(nextObjective);
915
+ if (action === "set" && current && current.status !== "complete") {
916
+ throw new Error("The task already has an unfinished Goal. Use task goal <task> edit <objective>, or clear it first.");
917
+ }
918
+ if (action === "edit" && !current)
919
+ throw new Error("The task has no Goal to edit.");
920
+ return {
921
+ goal: await loaded.runtime.setGoal(record.localSessionId, {
922
+ objective: nextObjective,
923
+ status: action === "edit" ? current.status : "active",
924
+ ...(action === "edit" ? { tokenBudget: current.tokenBudget } : {}),
925
+ }),
926
+ };
927
+ }
928
+ controlListTaskTurns(localSessionId) {
929
+ const session = this.requireControlSession(localSessionId);
930
+ if (!session.remoteSessionId || !this.isCodexSession(session)) {
931
+ throw new Error("The task is not an App Server task that can be reset.");
932
+ }
933
+ const contextKey = this.controlSessionContextKey(session);
934
+ const rows = this.store.listCompletedTurnGraph(session.localSessionId, contextKey);
935
+ const graph = buildTurnGraphRows(rows.map((turn) => ({ turnId: turn.turnId, parentTurnId: turn.parentTurnId })));
936
+ return {
937
+ session,
938
+ turns: rows.flatMap((turn, index) => {
939
+ const snapshot = turnViewSnapshot(turn.snapshot);
940
+ if (!snapshot)
941
+ return [];
942
+ return [{
943
+ sequence: graph[index].sequence,
944
+ turnId: turn.turnId,
945
+ parentTurnId: turn.parentTurnId,
946
+ prompt: snapshot.prompt ?? snapshot.taskTitle,
947
+ startedAt: snapshot.startedAt,
948
+ completedAt: snapshot.completedAt,
949
+ current: session.lastTurnId === turn.turnId && session.lastTurnStatus === "completed",
950
+ }];
951
+ }),
952
+ };
953
+ }
954
+ async controlResetTaskToTurn(localSessionId, turnId) {
955
+ const record = this.requireControlSession(localSessionId);
956
+ const contextKey = this.controlSessionContextKey(record);
957
+ const previous = this.sessionResets.get(record.localSessionId) ?? Promise.resolve();
958
+ const reset = previous.catch(() => undefined).then(() => this.performSessionReset(contextKey, record, turnId, false));
959
+ this.sessionResets.set(record.localSessionId, reset);
960
+ try {
961
+ await reset;
962
+ }
963
+ finally {
964
+ if (this.sessionResets.get(record.localSessionId) === reset)
965
+ this.sessionResets.delete(record.localSessionId);
966
+ }
967
+ return this.store.getSession(record.localSessionId) ?? record;
968
+ }
969
+ controlTaskMute(localSessionId, enabled) {
970
+ const record = this.requireControlSession(localSessionId);
971
+ const contextKey = baseChatContextKey(this.controlSessionContextKey(record));
972
+ const chat = this.store.getChatContext(contextKey);
973
+ if (chat?.chatType !== "group")
974
+ throw new Error("task mute is only available for group chats.");
975
+ const next = enabled ?? Boolean(chat.requiresMention);
976
+ if (enabled !== undefined)
977
+ this.store.setChatRequiresMention(contextKey, enabled);
978
+ return { contextKey, enabled: next };
979
+ }
980
+ async controlRunTaskShell(localSessionId, command) {
981
+ const record = this.requireControlSession(localSessionId);
982
+ const normalized = command.trim();
983
+ if (!normalized)
984
+ throw new Error("task shell requires a command.");
985
+ return { ...await this.shellCommandExecutor(normalized, record.cwd), cwd: record.cwd, command: normalized };
986
+ }
987
+ async controlListTaskDirectory(localSessionId, requestedDirectory, requestedPage = 0) {
988
+ const record = this.requireControlSession(localSessionId);
989
+ if (requestedDirectory === WINDOWS_DRIVES_DIRECTORY) {
990
+ const drives = await this.windowsDriveLister();
991
+ const totalPages = Math.max(1, Math.ceil(drives.length / DIRECTORY_PAGE_SIZE));
992
+ const page = Math.min(Math.max(0, Math.trunc(requestedPage)), totalPages - 1);
993
+ return {
994
+ directory: WINDOWS_DRIVES_DIRECTORY,
995
+ page,
996
+ totalPages,
997
+ totalEntries: drives.length,
998
+ entries: drives.slice(page * DIRECTORY_PAGE_SIZE, (page + 1) * DIRECTORY_PAGE_SIZE).map((drive) => ({
999
+ name: windowsDriveDisplayName(drive),
1000
+ path: drive.root,
1001
+ kind: "drive",
1002
+ })),
1003
+ };
1004
+ }
1005
+ const directory = requestedDirectory === undefined
1006
+ ? path.resolve(record.cwd)
1007
+ : resolveUserPath(requestedDirectory, record.cwd);
1008
+ await this.assertBrowsableDirectory(directory);
1009
+ const entries = (await fs.readdir(directory, { withFileTypes: true }))
1010
+ .map((entry) => ({
1011
+ name: entry.name,
1012
+ path: path.join(directory, entry.name),
1013
+ kind: directoryBrowserEntryKind(entry),
1014
+ }))
1015
+ .sort((left, right) => Number(right.kind === "directory") - Number(left.kind === "directory")
1016
+ || left.name.localeCompare(right.name, undefined, { numeric: true, sensitivity: "base" }));
1017
+ const totalPages = Math.max(1, Math.ceil(entries.length / DIRECTORY_PAGE_SIZE));
1018
+ const page = Math.min(Math.max(0, Math.trunc(requestedPage)), totalPages - 1);
1019
+ const parentDirectory = isWindowsDriveRoot(directory) ? WINDOWS_DRIVES_DIRECTORY : path.dirname(directory);
1020
+ return {
1021
+ directory,
1022
+ ...(parentDirectory !== directory ? { parentDirectory } : {}),
1023
+ page,
1024
+ totalPages,
1025
+ totalEntries: entries.length,
1026
+ entries: entries.slice(page * DIRECTORY_PAGE_SIZE, (page + 1) * DIRECTORY_PAGE_SIZE),
1027
+ };
1028
+ }
1029
+ async controlSendTaskFile(localSessionId, requestedFilePath) {
1030
+ const record = this.requireControlSession(localSessionId);
1031
+ const filePath = resolveUserPath(requestedFilePath, record.cwd);
1032
+ await this.assertSendableFile(filePath);
1033
+ const contextKey = this.controlSessionContextKey(record);
1034
+ const replyTarget = this.controlSessionReplyTarget(record);
1035
+ return this.outbound.withReplyTarget(contextKey, replyTarget, () => this.outbound.sendFile(contextKey, filePath));
1036
+ }
709
1037
  cardActionContextKey(action) {
710
1038
  const explicit = typeof action.value.contextKey === "string" ? action.value.contextKey : undefined;
711
1039
  if (explicit && baseChatContextKey(explicit) === baseChatContextKey(action.contextKey))
@@ -776,6 +1104,16 @@ export class ProxySessionController {
776
1104
  else
777
1105
  await this.openAgentSettings(contextKey);
778
1106
  return;
1107
+ case "archive": {
1108
+ const sessionId = command.sessionId ?? context.currentSessionId;
1109
+ if (!sessionId)
1110
+ throw new Error("当前会话没有可归档的任务。请使用 /sessions 查找任务。");
1111
+ await this.archiveSessionReference(contextKey, sessionId, {
1112
+ announce: true,
1113
+ source: "command",
1114
+ });
1115
+ return;
1116
+ }
779
1117
  case "status":
780
1118
  await this.status(contextKey, command.sessionId);
781
1119
  return;
@@ -2390,15 +2728,19 @@ export class ProxySessionController {
2390
2728
  if (current.localSessionId !== sessionId) {
2391
2729
  throw new Error("这张思考卡片不属于当前任务。请先切换回对应任务,再点击 Reset。");
2392
2730
  }
2731
+ await this.performSessionReset(contextKey, current, turnId, true);
2732
+ }
2733
+ async performSessionReset(contextKey, current, turnId, announce) {
2393
2734
  if (!current.remoteSessionId || !this.isCodexSession(current)) {
2394
2735
  throw new Error("当前任务不是可 Reset 的 App Server 任务。");
2395
2736
  }
2396
2737
  const snapshot = turnViewSnapshot(this.store.getTurnSnapshot(turnId));
2397
- if (!snapshot || snapshot.sessionId !== sessionId || snapshot.status !== "completed") {
2738
+ if (!snapshot || snapshot.sessionId !== current.localSessionId || snapshot.status !== "completed") {
2398
2739
  throw new Error("只能将当前任务 Reset 到已成功完成的轮次。");
2399
2740
  }
2400
2741
  if (current.lastTurnId === turnId && current.lastTurnStatus === "completed") {
2401
- await this.outbound.sendText(contextKey, "当前任务已经处于本轮完成后的对话状态,无需 Reset。");
2742
+ if (announce)
2743
+ await this.outbound.sendText(contextKey, "当前任务已经处于本轮完成后的对话状态,无需 Reset。");
2402
2744
  return;
2403
2745
  }
2404
2746
  const runtime = this.runtimes.forAgent(current.agentName);
@@ -2413,7 +2755,7 @@ export class ProxySessionController {
2413
2755
  throw new Error("当前任务仍在执行。请等待任务完成或先停止任务,再点击 Reset。");
2414
2756
  }
2415
2757
  const origin = this.store.getTurnRuntimeOrigin(turnId);
2416
- if (origin && (origin.localSessionId !== sessionId || origin.agentName !== current.agentName)) {
2758
+ if (origin && (origin.localSessionId !== current.localSessionId || origin.agentName !== current.agentName)) {
2417
2759
  throw new Error("这张思考卡片与当前任务不匹配,已拒绝 Reset。");
2418
2760
  }
2419
2761
  const sourceRemoteSessionId = origin?.remoteSessionId ?? current.remoteSessionId;
@@ -2445,13 +2787,15 @@ export class ProxySessionController {
2445
2787
  });
2446
2788
  const targetSummary = truncateText((snapshot.prompt ?? snapshot.taskTitle ?? "未记录对话内容").replace(/\s+/g, " ").trim(), 100) || "未记录对话内容";
2447
2789
  const targetTime = snapshot.completedAt ?? snapshot.startedAt;
2448
- await this.outbound.sendText(contextKey, [
2449
- "已将当前任务重置到:",
2450
- targetSummary,
2451
- `完成时间:${targetTime === undefined ? "未知" : formatResetTurnTime(targetTime)}`,
2452
- `Turn ID:${turnId}`,
2453
- "后续对话将从该轮完成后的状态继续;本地文件没有回退。",
2454
- ].join("\n"));
2790
+ if (announce) {
2791
+ await this.outbound.sendText(contextKey, [
2792
+ "已将当前任务重置到:",
2793
+ targetSummary,
2794
+ `完成时间:${targetTime === undefined ? "未知" : formatResetTurnTime(targetTime)}`,
2795
+ `Turn ID:${turnId}`,
2796
+ "后续对话将从该轮完成后的状态继续;本地文件没有回退。",
2797
+ ].join("\n"));
2798
+ }
2455
2799
  }
2456
2800
  async resolveApproval(action) {
2457
2801
  const sessionId = String(action.value.sessionId ?? "");
@@ -3268,6 +3612,16 @@ export class ProxySessionController {
3268
3612
  contextKey,
3269
3613
  },
3270
3614
  });
3615
+ actions.push({
3616
+ text: "Archive",
3617
+ value: {
3618
+ action: "session_archive",
3619
+ sessionId: entry.reference,
3620
+ ...(searchTerm ? { searchTerm } : {}),
3621
+ page: String(page),
3622
+ contextKey,
3623
+ },
3624
+ });
3271
3625
  const title = truncateText(entry.title.replace(/\s+/gu, " ").trim() || "未命名任务", 56);
3272
3626
  return {
3273
3627
  project,
@@ -3306,7 +3660,7 @@ export class ProxySessionController {
3306
3660
  `第 ${page + 1} 页 · 每页 ${SESSION_PAGE_SIZE} 个任务${hasNext ? "" : ` · 当前共 ${entries.length} 个任务`}`,
3307
3661
  "",
3308
3662
  "> 项目行:**New** 新建任务,**NewGroup** 新建群。",
3309
- "> 任务详情:**Switch** 切换,**Stop** 停止,**Fork** / **ForkGroup** 创建分支,**Status** 查看状态。",
3663
+ "> 任务详情:**Switch** 切换,**Stop** 停止,**Fork** / **ForkGroup** 创建分支,**Status** 查看状态,**Archive** 归档。",
3310
3664
  ], [
3311
3665
  ...(hasPrevious ? [{
3312
3666
  text: "Previous",
@@ -3471,6 +3825,56 @@ export class ProxySessionController {
3471
3825
  });
3472
3826
  await this.outbound.sendText(contextKey, `已向 Agent 发送 Interrupt 请求:${turnId}`);
3473
3827
  }
3828
+ async archiveSessionReference(contextKey, reference, options) {
3829
+ const taskId = this.resolveSessionReference(contextKey, reference);
3830
+ const direct = this.store.getSession(taskId);
3831
+ if (direct?.status === "closed")
3832
+ throw new Error(`任务已经归档:${direct.title ?? taskId}`);
3833
+ const local = direct ?? this.findStoredSessionByReference(taskId);
3834
+ if (local && (!local.remoteSessionId || !this.isCodexSession(local))) {
3835
+ throw new Error("当前 Agent 不支持归档任务。");
3836
+ }
3837
+ if (local && (local.status === "running"
3838
+ || Boolean(this.runtimes.forAgent(local.agentName).getSession(local.localSessionId)?.activeTurnId))) {
3839
+ throw new Error("任务正在执行,无法归档。请先停止任务或等待本轮完成。");
3840
+ }
3841
+ if (local && this.store.countQueuedPrompts(local.localSessionId) > 0) {
3842
+ throw new Error("任务仍有排队消息,无法归档。请先处理或取消排队消息。");
3843
+ }
3844
+ const remoteReference = local
3845
+ ? remoteSessionReference(local.agentName, local.remoteSessionId)
3846
+ : taskId;
3847
+ const { agentName, runtime, remote } = await this.resolveRemoteCodexSession(remoteReference);
3848
+ if (isRemoteSessionActive(remote)) {
3849
+ throw new Error("任务正在执行,无法归档。请先停止任务或等待本轮完成。");
3850
+ }
3851
+ if (!runtime.archiveRemoteSession) {
3852
+ throw new Error(`Agent ${agentName} 不支持归档任务。`);
3853
+ }
3854
+ const wasCurrent = Boolean(local && this.store.getUserContext(contextKey)?.currentSessionId === local.localSessionId);
3855
+ await runtime.archiveRemoteSession(remote.id);
3856
+ const title = local?.title ?? remote.title ?? remote.preview ?? remote.id;
3857
+ if (local) {
3858
+ this.store.archiveSession(local.localSessionId);
3859
+ this.outbound.unregisterSession(local.localSessionId);
3860
+ }
3861
+ this.store.audit(contextKey, "session_archived", {
3862
+ ...(local ? { localSessionId: local.localSessionId } : {}),
3863
+ remoteSessionId: remote.id,
3864
+ agentName,
3865
+ source: options.source,
3866
+ });
3867
+ if (options.announce) {
3868
+ await this.outbound.sendText(contextKey, wasCurrent
3869
+ ? `已归档任务:${title}\n当前会话已没有绑定任务,直接发送消息即可创建新任务。`
3870
+ : `已归档任务:${title}`);
3871
+ }
3872
+ return {
3873
+ localSessionId: local?.localSessionId ?? "",
3874
+ remoteSessionId: remote.id,
3875
+ title,
3876
+ };
3877
+ }
3474
3878
  resolveSessionReference(contextKey, reference) {
3475
3879
  if (reference === undefined) {
3476
3880
  const previous = this.store.getOrCreateUserContext(contextKey, this.config.defaults.agent).previousSessionId;
@@ -3770,6 +4174,26 @@ export class ProxySessionController {
3770
4174
  ? "已开启当前群的静音模式。之后只有 @ 机器人的消息会被处理;发送 @机器人 /mute off 可恢复自动响应。"
3771
4175
  : "已关闭当前群的静音模式。机器人将恢复自动响应群消息。");
3772
4176
  }
4177
+ requireControlSession(localSessionId) {
4178
+ const record = this.store.getSession(localSessionId);
4179
+ if (!record || record.status === "closed")
4180
+ throw new Error(`Task not found: ${localSessionId}`);
4181
+ return record;
4182
+ }
4183
+ controlSessionContextKey(record) {
4184
+ return this.outbound.getSessionContextKey(record.localSessionId)
4185
+ ?? (record.lastTurnId ? this.store.getTurnContextKey(record.lastTurnId) : undefined)
4186
+ ?? record.contextKey;
4187
+ }
4188
+ controlSessionReplyTarget(record) {
4189
+ const routed = this.outbound.getSessionReplyTarget(record.localSessionId);
4190
+ if (routed)
4191
+ return routed;
4192
+ const snapshot = record.lastTurnId
4193
+ ? turnViewSnapshot(this.store.getTurnSnapshot(record.lastTurnId))
4194
+ : undefined;
4195
+ return snapshot?.replyTarget;
4196
+ }
3773
4197
  ensureAgent(agentName) {
3774
4198
  const agent = this.config.agents[agentName];
3775
4199
  if (!agent)
@@ -4276,7 +4700,7 @@ function isBotOwnedActiveTurn(record, remote) {
4276
4700
  && record.lastTurnId === remote.lastTurnId;
4277
4701
  }
4278
4702
  function isQueueIndependentCommand(command) {
4279
- if (["stop", "status", "restart", "mute", "help", "sessions", "dir", "goal", "nosteer"].includes(command.type))
4703
+ if (["archive", "stop", "status", "restart", "mute", "help", "sessions", "dir", "goal", "nosteer"].includes(command.type))
4280
4704
  return true;
4281
4705
  if (command.type === "agent")
4282
4706
  return command.agent === undefined;