@keyou007/agent-bot 0.1.18 → 0.1.19-alpha.1

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 (63) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +3 -0
  3. package/README.zh.md +3 -0
  4. package/dist/cli/controlProtocol.js.map +1 -1
  5. package/dist/cli/help.js +2 -0
  6. package/dist/cli/help.js.map +1 -1
  7. package/dist/cli.js +20 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/codex/CodexProcessManager.js +48 -0
  10. package/dist/codex/CodexProcessManager.js.map +1 -1
  11. package/dist/codex/CodexRuntime.js +43 -5
  12. package/dist/codex/CodexRuntime.js.map +1 -1
  13. package/dist/codex/ThreadWriterProcess.js +344 -0
  14. package/dist/codex/ThreadWriterProcess.js.map +1 -0
  15. package/dist/commands/CommandRouter.js +5 -0
  16. package/dist/commands/CommandRouter.js.map +1 -1
  17. package/dist/console/ConsoleTurnPresenter.js +1 -0
  18. package/dist/console/ConsoleTurnPresenter.js.map +1 -1
  19. package/dist/feishu/CardRenderer.js +166 -0
  20. package/dist/feishu/CardRenderer.js.map +1 -1
  21. package/dist/feishu/FeishuTurnPresenter.js +13 -3
  22. package/dist/feishu/FeishuTurnPresenter.js.map +1 -1
  23. package/dist/feishu/MergedForwardMessage.js +6 -1
  24. package/dist/feishu/MergedForwardMessage.js.map +1 -1
  25. package/dist/index.js +4 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/logging/errorLogValue.js +18 -0
  28. package/dist/logging/errorLogValue.js.map +1 -0
  29. package/dist/logging/logger.js +4 -0
  30. package/dist/logging/logger.js.map +1 -1
  31. package/dist/presentation/OutboundRouter.js +2 -2
  32. package/dist/presentation/OutboundRouter.js.map +1 -1
  33. package/dist/proxy/ProxySessionController.js +778 -19
  34. package/dist/proxy/ProxySessionController.js.map +1 -1
  35. package/dist/state/StateStore.js +10 -0
  36. package/dist/state/StateStore.js.map +1 -1
  37. package/dist/supervision/SafeRestartScheduler.js +1 -1
  38. package/dist/supervision/SafeRestartScheduler.js.map +1 -1
  39. package/docs/technical-reference.md +1 -1
  40. package/docs/technical-reference.zh.md +1 -1
  41. package/npm-shrinkwrap.json +2 -2
  42. package/package.json +1 -1
  43. package/skills/agent-bot/SKILL.md +3 -0
  44. package/src/cli/controlProtocol.ts +8 -0
  45. package/src/cli/help.ts +2 -0
  46. package/src/cli.ts +33 -0
  47. package/src/codex/CodexProcessManager.ts +43 -0
  48. package/src/codex/CodexRuntime.ts +41 -4
  49. package/src/codex/ThreadWriterProcess.ts +385 -0
  50. package/src/commands/CommandRouter.ts +4 -0
  51. package/src/commands/commandTypes.ts +1 -0
  52. package/src/console/ConsoleTurnPresenter.ts +2 -1
  53. package/src/feishu/CardRenderer.ts +205 -0
  54. package/src/feishu/FeishuTurnPresenter.ts +16 -3
  55. package/src/feishu/MergedForwardMessage.ts +5 -1
  56. package/src/index.ts +4 -2
  57. package/src/logging/errorLogValue.ts +26 -0
  58. package/src/logging/logger.ts +4 -0
  59. package/src/presentation/OutboundRouter.ts +15 -3
  60. package/src/proxy/ProxySessionController.ts +1003 -30
  61. package/src/runtime/types.ts +7 -0
  62. package/src/state/StateStore.ts +11 -0
  63. package/src/supervision/SafeRestartScheduler.ts +1 -1
@@ -0,0 +1,344 @@
1
+ import { execFile } from "node:child_process";
2
+ import { access, readdir } from "node:fs/promises";
3
+ import path from "node:path";
4
+ const PROCESS_INSPECTION_TIMEOUT_MS = 10_000;
5
+ const MAX_PROCESS_OUTPUT_BYTES = 1024 * 1024;
6
+ const LOCK_INSPECTION_CONCURRENCY = 4;
7
+ const THREAD_WRITER_LOCK_FILE_PATTERN = /^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.lock$/iu;
8
+ export class SystemThreadWriterProcessController {
9
+ async inspect(lockPath) {
10
+ try {
11
+ await access(lockPath);
12
+ }
13
+ catch {
14
+ return [];
15
+ }
16
+ return process.platform === "win32"
17
+ ? inspectWindowsLockOwners(lockPath)
18
+ : inspectPosixLockOwners(lockPath);
19
+ }
20
+ async inspectApplicationThreadIds(lockPath, owner) {
21
+ if (!owner.applicationStartedAt)
22
+ return [];
23
+ let entries;
24
+ try {
25
+ entries = await readdir(path.dirname(lockPath), { withFileTypes: true });
26
+ }
27
+ catch {
28
+ return [];
29
+ }
30
+ const candidates = entries.flatMap((entry) => {
31
+ if (!entry.isFile())
32
+ return [];
33
+ const match = THREAD_WRITER_LOCK_FILE_PATTERN.exec(entry.name);
34
+ return match?.[1] ? [{ threadId: match[1], lockPath: path.join(path.dirname(lockPath), entry.name) }] : [];
35
+ });
36
+ const ownedThreadIds = [];
37
+ for (let index = 0; index < candidates.length; index += LOCK_INSPECTION_CONCURRENCY) {
38
+ const batch = candidates.slice(index, index + LOCK_INSPECTION_CONCURRENCY);
39
+ const results = await Promise.all(batch.map(async (candidate) => {
40
+ const owners = samePath(candidate.lockPath, lockPath)
41
+ ? [owner]
42
+ : await this.inspect(candidate.lockPath);
43
+ return owners.some((candidateOwner) => sameApplication(candidateOwner, owner))
44
+ ? candidate.threadId
45
+ : undefined;
46
+ }));
47
+ ownedThreadIds.push(...results.filter((threadId) => Boolean(threadId)));
48
+ }
49
+ return ownedThreadIds;
50
+ }
51
+ async close(owner, force) {
52
+ const targetPid = owner.applicationPid;
53
+ if (!owner.canClose)
54
+ throw new Error("The writer process is not recognized as a closable Agent application.");
55
+ if (!owner.applicationStartedAt)
56
+ throw new Error("The writer process does not have a stable start-time fingerprint.");
57
+ if (!Number.isSafeInteger(targetPid) || targetPid <= 4 || targetPid === process.pid) {
58
+ throw new Error(`Refusing to close unsafe process PID ${targetPid}.`);
59
+ }
60
+ if (process.platform === "win32") {
61
+ await executeWindowsPowerShell(WINDOWS_CLOSE_PROCESS_SCRIPT, {
62
+ AGENT_BOT_CLOSE_PID: String(targetPid),
63
+ AGENT_BOT_CLOSE_STARTED_AT: owner.applicationStartedAt,
64
+ AGENT_BOT_FORCE_CLOSE: force ? "true" : "false",
65
+ AGENT_BOT_WRITER_PID: String(owner.writerPid),
66
+ });
67
+ return;
68
+ }
69
+ const current = await readPosixProcess(targetPid);
70
+ if (!current || current.startedAt !== owner.applicationStartedAt) {
71
+ throw new Error(`Process PID ${targetPid} no longer matches the inspected writer application.`);
72
+ }
73
+ process.kill(targetPid, force ? "SIGKILL" : "SIGTERM");
74
+ }
75
+ }
76
+ export function threadWriterLockPath(codexHome, threadId) {
77
+ if (!THREAD_WRITER_LOCK_FILE_PATTERN.test(`${threadId}.lock`)) {
78
+ return undefined;
79
+ }
80
+ return path.join(codexHome, "thread-writer-locks", `${threadId}.lock`);
81
+ }
82
+ export function parseWindowsLockOwners(value) {
83
+ const trimmed = value.trim();
84
+ if (!trimmed)
85
+ return [];
86
+ const parsed = JSON.parse(trimmed);
87
+ const entries = Array.isArray(parsed) ? parsed : [parsed];
88
+ return entries.flatMap((entry) => {
89
+ if (!entry || typeof entry !== "object")
90
+ return [];
91
+ const record = entry;
92
+ const writerPid = positiveInteger(record.writerPid);
93
+ const applicationPid = positiveInteger(record.applicationPid);
94
+ const writerProcessName = stringValue(record.writerProcessName);
95
+ const applicationProcessName = stringValue(record.applicationProcessName);
96
+ if (!writerPid || !applicationPid || !writerProcessName || !applicationProcessName)
97
+ return [];
98
+ return [{
99
+ writerPid,
100
+ writerProcessName,
101
+ writerStartedAt: stringValue(record.writerStartedAt),
102
+ applicationPid,
103
+ applicationProcessName,
104
+ applicationStartedAt: stringValue(record.applicationStartedAt),
105
+ displayName: stringValue(record.displayName) ?? applicationProcessName,
106
+ canClose: record.canClose === true,
107
+ commandLine: stringValue(record.commandLine),
108
+ }];
109
+ });
110
+ }
111
+ async function inspectWindowsLockOwners(lockPath) {
112
+ const output = await executeWindowsPowerShell(WINDOWS_LOCK_OWNER_SCRIPT, {
113
+ AGENT_BOT_THREAD_LOCK_PATH: lockPath,
114
+ });
115
+ return parseWindowsLockOwners(output);
116
+ }
117
+ async function inspectPosixLockOwners(lockPath) {
118
+ const pids = await posixLockOwnerPids(lockPath);
119
+ const owners = await Promise.all(pids.map((pid) => inspectPosixProcess(pid)));
120
+ return owners.filter((owner) => owner !== undefined);
121
+ }
122
+ async function posixLockOwnerPids(lockPath) {
123
+ const lsof = await tryExecuteFile("lsof", ["-t", "--", lockPath]);
124
+ const raw = lsof.ok ? lsof.stdout : (await tryExecuteFile("fuser", [lockPath])).stdout;
125
+ return [...new Set(raw.match(/\d+/gu)?.map(Number).filter((pid) => Number.isSafeInteger(pid) && pid > 0) ?? [])];
126
+ }
127
+ async function inspectPosixProcess(writerPid) {
128
+ const writer = await readPosixProcess(writerPid);
129
+ if (!writer)
130
+ return undefined;
131
+ let application = writer;
132
+ let cursor = writer;
133
+ for (let depth = 0; depth < 8 && cursor.parentPid > 1; depth += 1) {
134
+ const parent = await readPosixProcess(cursor.parentPid);
135
+ if (!parent)
136
+ break;
137
+ if (/\/(?:Codex|ChatGPT)\.app\//iu.test(parent.commandLine)) {
138
+ application = parent;
139
+ break;
140
+ }
141
+ cursor = parent;
142
+ }
143
+ const canClose = isRecognizedWriter(writer.name, writer.commandLine);
144
+ return {
145
+ writerPid,
146
+ writerProcessName: writer.name,
147
+ writerStartedAt: writer.startedAt,
148
+ applicationPid: application.pid,
149
+ applicationProcessName: application.name,
150
+ applicationStartedAt: application.startedAt,
151
+ displayName: /\/(?:Codex|ChatGPT)\.app\//iu.test(application.commandLine)
152
+ ? "Codex Desktop"
153
+ : writer.name,
154
+ canClose,
155
+ commandLine: writer.commandLine,
156
+ };
157
+ }
158
+ async function readPosixProcess(pid) {
159
+ const [parent, name, startedAt, commandLine] = await Promise.all([
160
+ tryExecuteFile("ps", ["-p", String(pid), "-o", "ppid="]),
161
+ tryExecuteFile("ps", ["-p", String(pid), "-o", "comm="]),
162
+ tryExecuteFile("ps", ["-p", String(pid), "-o", "lstart="]),
163
+ tryExecuteFile("ps", ["-p", String(pid), "-o", "command="]),
164
+ ]);
165
+ const parentPid = Number(parent.stdout.trim());
166
+ const processName = name.stdout.trim();
167
+ if (!parent.ok || !processName || !Number.isSafeInteger(parentPid))
168
+ return undefined;
169
+ return {
170
+ pid,
171
+ parentPid,
172
+ name: processName,
173
+ startedAt: startedAt.stdout.trim() || undefined,
174
+ commandLine: commandLine.stdout.trim(),
175
+ };
176
+ }
177
+ function isRecognizedWriter(name, commandLine) {
178
+ const candidate = `${name} ${commandLine}`;
179
+ return /(?:^|[\\/\s])(?:codex|trae(?:x|cli)?)(?:\.exe|\.js)?(?:\s|$)/iu.test(candidate)
180
+ && /app-server/iu.test(candidate);
181
+ }
182
+ async function executeWindowsPowerShell(script, extraEnv) {
183
+ const encoded = Buffer.from(script, "utf16le").toString("base64");
184
+ return executeFile("powershell.exe", ["-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-EncodedCommand", encoded], extraEnv);
185
+ }
186
+ function executeFile(command, args, extraEnv = {}) {
187
+ return new Promise((resolve, reject) => {
188
+ execFile(command, args, {
189
+ env: { ...process.env, ...extraEnv },
190
+ timeout: PROCESS_INSPECTION_TIMEOUT_MS,
191
+ maxBuffer: MAX_PROCESS_OUTPUT_BYTES,
192
+ windowsHide: true,
193
+ encoding: "utf8",
194
+ }, (error, stdout, stderr) => {
195
+ if (error) {
196
+ reject(new Error(`${command} failed: ${stderr.trim() || error.message}`, { cause: error }));
197
+ return;
198
+ }
199
+ resolve(stdout);
200
+ });
201
+ });
202
+ }
203
+ function tryExecuteFile(command, args) {
204
+ return executeFile(command, args).then((stdout) => ({ ok: true, stdout }), () => ({ ok: false, stdout: "" }));
205
+ }
206
+ function positiveInteger(value) {
207
+ return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : undefined;
208
+ }
209
+ function stringValue(value) {
210
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
211
+ }
212
+ function sameApplication(left, right) {
213
+ return left.applicationPid === right.applicationPid
214
+ && Boolean(left.applicationStartedAt)
215
+ && left.applicationStartedAt === right.applicationStartedAt;
216
+ }
217
+ function samePath(left, right) {
218
+ const normalizedLeft = path.resolve(left);
219
+ const normalizedRight = path.resolve(right);
220
+ return process.platform === "win32"
221
+ ? normalizedLeft.toLowerCase() === normalizedRight.toLowerCase()
222
+ : normalizedLeft === normalizedRight;
223
+ }
224
+ const WINDOWS_CLOSE_PROCESS_SCRIPT = String.raw `
225
+ $ErrorActionPreference = 'Stop'
226
+ $targetPid = [int]$env:AGENT_BOT_CLOSE_PID
227
+ $writerPid = [int]$env:AGENT_BOT_WRITER_PID
228
+ $expectedStartedAt = $env:AGENT_BOT_CLOSE_STARTED_AT
229
+ $forceClose = $env:AGENT_BOT_FORCE_CLOSE -eq 'true'
230
+ $process = Get-Process -Id $targetPid -ErrorAction Stop
231
+ $actualStartedAt = $process.StartTime.ToUniversalTime().ToString('o')
232
+ if ($actualStartedAt -ne $expectedStartedAt) {
233
+ throw "Process PID $targetPid no longer matches the inspected writer application."
234
+ }
235
+ if ($forceClose) {
236
+ & taskkill.exe /PID $targetPid /T /F | Out-Null
237
+ if ($LASTEXITCODE -ne 0) { throw "taskkill failed with exit code $LASTEXITCODE" }
238
+ } elseif ($targetPid -ne $writerPid -and $process.MainWindowHandle -ne 0) {
239
+ if (-not $process.CloseMainWindow()) {
240
+ throw "The application did not accept a close request."
241
+ }
242
+ } else {
243
+ Stop-Process -Id $targetPid -ErrorAction Stop
244
+ }
245
+ `;
246
+ const WINDOWS_LOCK_OWNER_SCRIPT = String.raw `
247
+ $ErrorActionPreference = 'Stop'
248
+ Add-Type @'
249
+ using System;
250
+ using System.Runtime.InteropServices;
251
+ using System.Text;
252
+ public static class AgentBotRestartManager {
253
+ [StructLayout(LayoutKind.Sequential)]
254
+ public struct RM_UNIQUE_PROCESS {
255
+ public int dwProcessId;
256
+ public System.Runtime.InteropServices.ComTypes.FILETIME ProcessStartTime;
257
+ }
258
+ public enum RM_APP_TYPE { UnknownApp=0, MainWindow=1, OtherWindow=2, Service=3, Explorer=4, Console=5, Critical=1000 }
259
+ [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
260
+ public struct RM_PROCESS_INFO {
261
+ public RM_UNIQUE_PROCESS Process;
262
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)] public string strAppName;
263
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst=64)] public string strServiceShortName;
264
+ public RM_APP_TYPE ApplicationType;
265
+ public uint AppStatus;
266
+ public uint TSSessionId;
267
+ [MarshalAs(UnmanagedType.Bool)] public bool bRestartable;
268
+ }
269
+ [DllImport("rstrtmgr.dll", CharSet=CharSet.Unicode)]
270
+ public static extern int RmStartSession(out uint sessionHandle, int sessionFlags, StringBuilder sessionKey);
271
+ [DllImport("rstrtmgr.dll", CharSet=CharSet.Unicode)]
272
+ public static extern int RmRegisterResources(uint sessionHandle, uint fileCount, string[] files, uint applicationCount, RM_UNIQUE_PROCESS[] applications, uint serviceCount, string[] services);
273
+ [DllImport("rstrtmgr.dll")]
274
+ public static extern int RmGetList(uint sessionHandle, out uint needed, ref uint count, [In, Out] RM_PROCESS_INFO[] processes, ref uint rebootReasons);
275
+ [DllImport("rstrtmgr.dll")]
276
+ public static extern int RmEndSession(uint sessionHandle);
277
+ }
278
+ '@
279
+
280
+ function Get-AgentBotProcess([int]$processId) {
281
+ Get-CimInstance Win32_Process -Filter ("ProcessId=" + $processId) -ErrorAction SilentlyContinue
282
+ }
283
+
284
+ function Get-AgentBotStartTime([int]$processId) {
285
+ try { (Get-Process -Id $processId -ErrorAction Stop).StartTime.ToUniversalTime().ToString('o') } catch { $null }
286
+ }
287
+
288
+ $lockPath = $env:AGENT_BOT_THREAD_LOCK_PATH
289
+ $key = New-Object Text.StringBuilder 64
290
+ [uint32]$handle = 0
291
+ $result = [AgentBotRestartManager]::RmStartSession([ref]$handle, 0, $key)
292
+ if ($result -ne 0) { throw "RmStartSession failed: $result" }
293
+ try {
294
+ $result = [AgentBotRestartManager]::RmRegisterResources($handle, 1, [string[]]@($lockPath), 0, $null, 0, $null)
295
+ if ($result -ne 0) { throw "RmRegisterResources failed: $result" }
296
+ [uint32]$needed = 0
297
+ [uint32]$count = 0
298
+ [uint32]$rebootReasons = 0
299
+ $result = [AgentBotRestartManager]::RmGetList($handle, [ref]$needed, [ref]$count, $null, [ref]$rebootReasons)
300
+ if ($result -eq 0) {
301
+ ConvertTo-Json -Compress -InputObject @()
302
+ return
303
+ }
304
+ if ($result -ne 234) { throw "RmGetList failed: $result" }
305
+ $items = New-Object 'AgentBotRestartManager+RM_PROCESS_INFO[]' $needed
306
+ $count = $needed
307
+ $result = [AgentBotRestartManager]::RmGetList($handle, [ref]$needed, [ref]$count, $items, [ref]$rebootReasons)
308
+ if ($result -ne 0) { throw "RmGetList failed: $result" }
309
+ $owners = @()
310
+ for ($index = 0; $index -lt $count; $index++) {
311
+ $writerPid = $items[$index].Process.dwProcessId
312
+ $writer = Get-AgentBotProcess $writerPid
313
+ if ($null -eq $writer) { continue }
314
+ $application = $writer
315
+ $cursor = $writer
316
+ for ($depth = 0; $depth -lt 8 -and $cursor.ParentProcessId -gt 1; $depth++) {
317
+ $parent = Get-AgentBotProcess $cursor.ParentProcessId
318
+ if ($null -eq $parent) { break }
319
+ if ($parent.Name -ieq 'ChatGPT.exe' -and $parent.ExecutablePath -match 'OpenAI[.\\]Codex') {
320
+ $application = $parent
321
+ break
322
+ }
323
+ $cursor = $parent
324
+ }
325
+ $recognized = (($writer.Name -match '^(codex|trae|traex|traecli)(.exe)?$') -or ($writer.CommandLine -match '(codex|trae|traex|traecli).*(app-server)'))
326
+ $desktop = $application.Name -ieq 'ChatGPT.exe' -and $application.ExecutablePath -match 'OpenAI[.\\]Codex'
327
+ $owners += [pscustomobject]@{
328
+ writerPid = $writerPid
329
+ writerProcessName = $writer.Name
330
+ writerStartedAt = Get-AgentBotStartTime $writerPid
331
+ applicationPid = [int]$application.ProcessId
332
+ applicationProcessName = $application.Name
333
+ applicationStartedAt = Get-AgentBotStartTime $application.ProcessId
334
+ displayName = $(if ($desktop) { 'Codex Desktop' } else { $writer.Name })
335
+ canClose = [bool]$recognized
336
+ commandLine = $writer.CommandLine
337
+ }
338
+ }
339
+ ConvertTo-Json -Compress -InputObject @($owners)
340
+ } finally {
341
+ [void][AgentBotRestartManager]::RmEndSession($handle)
342
+ }
343
+ `;
344
+ //# sourceMappingURL=ThreadWriterProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadWriterProcess.js","sourceRoot":"","sources":["../../src/codex/ThreadWriterProcess.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export const COMMAND_NAMES = [
16
16
  "permissions",
17
17
  "provider",
18
18
  "queue",
19
+ "release",
19
20
  "restart",
20
21
  "sessions",
21
22
  "status",
@@ -116,6 +117,10 @@ export class CommandRouter {
116
117
  if (args.length === 1 && args[0] === "--force")
117
118
  return { type: "restart", force: true };
118
119
  throw new Error("/restart 只接受一个可选的 --force 参数。");
120
+ case "release":
121
+ if (args.length > 0)
122
+ throw new Error("/release 不接受参数。");
123
+ return { type: "release" };
119
124
  case "mute": {
120
125
  if (args.length === 0 || (args.length === 1 && args[0].toLowerCase() === "on")) {
121
126
  return { type: "mute", enabled: true };
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/commands/CommandRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/commands/CommandRouter.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export class ConsoleTurnPresenter {
24
24
  const contextKey = this.contexts.get(sessionId);
25
25
  if (contextKey)
26
26
  await this.outbound.sendText(contextKey, `${this.agentLabel(sessionId)} failed to start: ${message}`);
27
+ return false;
27
28
  }
28
29
  async interruptTurnForRecovery() { }
29
30
  async appendSteerMessage() { }
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleTurnPresenter.js","sourceRoot":"","sources":["../../src/console/ConsoleTurnPresenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleTurnPresenter.js","sourceRoot":"","sources":["../../src/console/ConsoleTurnPresenter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,oBAAoB;IAKF,QAAQ;IAJpB,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/C,YAA6B,QAAwB;wBAAxB,QAAQ;IAAmB,CAAC;IAEzD,eAAe,CACb,SAAiB,EACjB,UAAkB,EAClB,UAAmB,EACnB,WAAoB,EACpB,UAAmB;QAEnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzC,IAAI,UAAU;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,kBAAkB,KAAU,CAAC;IAE7B,iBAAiB,CAAC,SAAiB;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,UAAkB;QAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3F,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,OAAe;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,UAAU;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QACtH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,wBAAwB,KAAmB,CAAC;IAElD,KAAK,CAAC,kBAAkB,KAAmB,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,KAAiB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5G,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,KAAK,CAAC,OAAO,CAAC,KAAK,0CAA0C,CAAC,CAAC;QAChI,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;QAClG,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3G,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,MAAc;QAClD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,yCAAyC,MAAM,IAAI,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,MAAc;QACvD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,gDAAgD,MAAM,IAAI,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,cAAc,KAAmB,CAAC;IAExC,KAAK,CAAC,QAAQ,KAAmB,CAAC;IAE1B,UAAU,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC;IACpD,CAAC;CACF"}
@@ -8,6 +8,172 @@ export class CardRenderer {
8
8
  constructor(options = {}) {
9
9
  this.thinkingCardLayout = options.thinkingCardLayout ?? "grouped";
10
10
  }
11
+ renderThreadWriterConflict(view) {
12
+ if (view.status === "released") {
13
+ return sectionCard("任务占用已解除", [markdown([
14
+ view.taskTitle ? `**任务**:${inlineCode(view.taskTitle)}` : undefined,
15
+ view.notice ?? "请重新发送消息。",
16
+ ].filter((line) => Boolean(line)).join("\n"))], "green");
17
+ }
18
+ const owner = view.owner;
19
+ const lines = [
20
+ view.taskTitle ? `**任务**:${inlineCode(view.taskTitle)}` : undefined,
21
+ owner ? `**进程**:${inlineCode(`${owner.applicationProcessName} (${owner.applicationPid})`)}` : undefined,
22
+ view.notice,
23
+ owner
24
+ ? view.applicationIdle === true
25
+ ? "> 无执行中任务,可安全关闭;也可 **Fork** 后继续发送消息。"
26
+ : view.applicationIdle === false
27
+ ? "> 有任务执行中,关闭会中断任务;可 **Fork** 后继续发送消息。"
28
+ : "> 可 **Fork** 后继续发送消息;关闭进程后请重发消息。"
29
+ : "> 可 **Fork** 后继续发送消息;或手动关闭占用任务。",
30
+ ].filter((line) => Boolean(line));
31
+ const elements = [markdown(lines.join("\n"))];
32
+ const canClose = owner?.canClose
33
+ && Boolean(owner.writerStartedAt)
34
+ && Boolean(owner.applicationStartedAt);
35
+ const actions = [{
36
+ tag: "button",
37
+ text: {
38
+ tag: "plain_text",
39
+ content: "Fork",
40
+ },
41
+ type: "default",
42
+ size: "small",
43
+ behaviors: [{
44
+ type: "callback",
45
+ value: {
46
+ action: "thread_writer_fork",
47
+ contextKey: view.contextKey,
48
+ sessionId: view.sessionId,
49
+ threadId: view.threadId,
50
+ },
51
+ }],
52
+ }];
53
+ if (canClose && owner) {
54
+ actions.push({
55
+ tag: "button",
56
+ text: {
57
+ tag: "plain_text",
58
+ content: view.status === "force_required"
59
+ ? `Force ${owner.applicationPid}`
60
+ : `Close ${owner.applicationPid}`,
61
+ },
62
+ type: "danger",
63
+ size: "small",
64
+ behaviors: [{
65
+ type: "callback",
66
+ value: {
67
+ action: "thread_writer_close",
68
+ contextKey: view.contextKey,
69
+ sessionId: view.sessionId,
70
+ threadId: view.threadId,
71
+ writerPid: owner.writerPid,
72
+ writerStartedAt: owner.writerStartedAt,
73
+ applicationPid: owner.applicationPid,
74
+ applicationStartedAt: owner.applicationStartedAt,
75
+ force: view.status === "force_required",
76
+ },
77
+ }],
78
+ });
79
+ }
80
+ elements.push({
81
+ tag: "column_set",
82
+ flex_mode: "none",
83
+ horizontal_spacing: "8px",
84
+ vertical_align: "center",
85
+ columns: actions.map((button) => ({
86
+ tag: "column",
87
+ width: "auto",
88
+ vertical_align: "center",
89
+ elements: [button],
90
+ })),
91
+ });
92
+ return sectionCard(view.status === "force_required" ? "仍被占用" : "任务被占用", elements, view.status === "force_required" ? "red" : "orange");
93
+ }
94
+ renderAppServerRelease(view) {
95
+ const agent = inlineCode(view.agentName);
96
+ if (view.status === "released") {
97
+ return sectionCard("任务已释放", [markdown([
98
+ `**Agent**:${agent}`,
99
+ view.forced ? "执行中的任务已中断。" : undefined,
100
+ "> 请在 Codex Desktop 点击 **Retry**。",
101
+ ].filter((line) => Boolean(line)).join("\n"))], "green");
102
+ }
103
+ if (view.status === "cancelled") {
104
+ return sectionCard("已取消释放", [markdown(`**Agent**:${agent}\n> Agent Bot 将继续保持当前任务连接。`)], "grey");
105
+ }
106
+ if (view.status === "failed") {
107
+ return sectionCard("释放失败", [markdown([
108
+ `**Agent**:${agent}`,
109
+ view.error ? truncateText(view.error, 500) : "无法释放 App Server。",
110
+ ].join("\n"))], "red");
111
+ }
112
+ if (view.status === "releasing") {
113
+ return sectionCard("正在释放", [markdown(`**Agent**:${agent}\n正在停止 Agent Bot 的 App Server。`)], "blue");
114
+ }
115
+ const blockingTaskCount = Math.max(0, view.blockingTaskCount ?? 0);
116
+ const releaseInSeconds = Math.max(1, view.releaseInSeconds ?? 1);
117
+ return sectionCard("等待释放", [
118
+ markdown([
119
+ `**Agent**:${agent}`,
120
+ blockingTaskCount > 0
121
+ ? `**等待任务**:${blockingTaskCount}`
122
+ : `**自动释放**:${releaseInSeconds} 秒后`,
123
+ blockingTaskCount > 0
124
+ ? "> 任务结束后自动释放;立即释放会中断执行。"
125
+ : "> 可立即释放或取消。",
126
+ ].join("\n")),
127
+ {
128
+ tag: "column_set",
129
+ flex_mode: "none",
130
+ horizontal_spacing: "8px",
131
+ vertical_align: "center",
132
+ columns: [
133
+ {
134
+ tag: "column",
135
+ width: "auto",
136
+ vertical_align: "center",
137
+ elements: [{
138
+ tag: "button",
139
+ text: { tag: "plain_text", content: "Release Now" },
140
+ type: "danger",
141
+ size: "small",
142
+ behaviors: [{
143
+ type: "callback",
144
+ value: {
145
+ action: "app_server_release_now",
146
+ contextKey: view.contextKey,
147
+ scheduleId: view.scheduleId,
148
+ agentName: view.agentName,
149
+ },
150
+ }],
151
+ }],
152
+ },
153
+ {
154
+ tag: "column",
155
+ width: "auto",
156
+ vertical_align: "center",
157
+ elements: [{
158
+ tag: "button",
159
+ text: { tag: "plain_text", content: "Cancel" },
160
+ type: "default",
161
+ size: "small",
162
+ behaviors: [{
163
+ type: "callback",
164
+ value: {
165
+ action: "app_server_release_cancel",
166
+ contextKey: view.contextKey,
167
+ scheduleId: view.scheduleId,
168
+ agentName: view.agentName,
169
+ },
170
+ }],
171
+ }],
172
+ },
173
+ ],
174
+ },
175
+ ], "orange");
176
+ }
11
177
  renderShellCommandCard(view) {
12
178
  const rawOutput = normalizeTerminalOutput(view.output).trimEnd();
13
179
  const displayOutput = truncateMiddle(rawOutput, 6_000, "\n\n... 中间输出已截断 ...\n\n");