agentwake 1.0.0 → 1.0.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 (58) hide show
  1. package/.cursor/hooks.json +2 -2
  2. package/README.md +210 -80
  3. package/dist/adapters/claude-hook-adapter.d.ts.map +1 -1
  4. package/dist/adapters/claude-hook-adapter.js +67 -0
  5. package/dist/adapters/claude-hook-adapter.js.map +1 -1
  6. package/dist/adapters/cursor-hook-adapter.d.ts.map +1 -1
  7. package/dist/adapters/cursor-hook-adapter.js +133 -47
  8. package/dist/adapters/cursor-hook-adapter.js.map +1 -1
  9. package/dist/adapters/cursor-terminal-hook.d.ts +12 -0
  10. package/dist/adapters/cursor-terminal-hook.d.ts.map +1 -1
  11. package/dist/adapters/cursor-terminal-hook.js +158 -4
  12. package/dist/adapters/cursor-terminal-hook.js.map +1 -1
  13. package/dist/adapters/qoder-log-adapter.d.ts +9 -0
  14. package/dist/adapters/qoder-log-adapter.d.ts.map +1 -1
  15. package/dist/adapters/qoder-log-adapter.js +188 -19
  16. package/dist/adapters/qoder-log-adapter.js.map +1 -1
  17. package/dist/bootstrap.d.ts.map +1 -1
  18. package/dist/bootstrap.js +25 -5
  19. package/dist/bootstrap.js.map +1 -1
  20. package/dist/cli.js +82 -19
  21. package/dist/cli.js.map +1 -1
  22. package/dist/config.d.ts +12 -0
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +45 -3
  25. package/dist/config.js.map +1 -1
  26. package/dist/installers/claude-code-installer.d.ts +15 -0
  27. package/dist/installers/claude-code-installer.d.ts.map +1 -0
  28. package/dist/installers/claude-code-installer.js +109 -0
  29. package/dist/installers/claude-code-installer.js.map +1 -0
  30. package/dist/notifiers/dingtalk-notifier.d.ts +15 -0
  31. package/dist/notifiers/dingtalk-notifier.d.ts.map +1 -0
  32. package/dist/notifiers/dingtalk-notifier.js +52 -0
  33. package/dist/notifiers/dingtalk-notifier.js.map +1 -0
  34. package/dist/notifiers/feishu-notifier.d.ts +14 -0
  35. package/dist/notifiers/feishu-notifier.d.ts.map +1 -0
  36. package/dist/notifiers/feishu-notifier.js +60 -0
  37. package/dist/notifiers/feishu-notifier.js.map +1 -0
  38. package/dist/notifiers/wecom-notifier.d.ts +13 -0
  39. package/dist/notifiers/wecom-notifier.d.ts.map +1 -0
  40. package/dist/notifiers/wecom-notifier.js +39 -0
  41. package/dist/notifiers/wecom-notifier.js.map +1 -0
  42. package/dist/paths.d.ts +9 -0
  43. package/dist/paths.d.ts.map +1 -0
  44. package/dist/paths.js +27 -0
  45. package/dist/paths.js.map +1 -0
  46. package/dist/run-gateway.d.ts +0 -1
  47. package/dist/run-gateway.d.ts.map +1 -1
  48. package/dist/run-gateway.js +11 -1
  49. package/dist/run-gateway.js.map +1 -1
  50. package/dist/setup.d.ts +2 -0
  51. package/dist/setup.d.ts.map +1 -0
  52. package/dist/setup.js +274 -0
  53. package/dist/setup.js.map +1 -0
  54. package/dist/utils/logger.d.ts.map +1 -1
  55. package/dist/utils/logger.js +20 -2
  56. package/dist/utils/logger.js.map +1 -1
  57. package/package.json +4 -2
  58. package/scripts/cursor-hook-forwarder.mjs +50 -4
@@ -1,18 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createCursorHookAdapter = createCursorHookAdapter;
4
+ const node_child_process_1 = require("node:child_process");
5
+ const node_util_1 = require("node:util");
4
6
  const hook_common_1 = require("./hook-common");
5
- const hook_common_2 = require("./hook-common");
6
7
  const cursor_terminal_hook_1 = require("./cursor-terminal-hook");
7
8
  const logger_1 = require("../utils/logger");
9
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
8
10
  function createCursorHookAdapter() {
9
- const pendingSignals = new Map();
10
- const REQUEST_NOTIFY_DELAY_MS = 1_000;
11
- const WAIT_THRESHOLD_MS = 2_000;
12
11
  return {
13
12
  id: "cursor-hook-adapter",
14
13
  start(context) {
15
- const cleanupSignal = (key) => {
14
+ const pendingSignals = new Map();
15
+ const WAIT_NOTIFY_DELAY_MS = 2_000;
16
+ const WAIT_CONFIRM_DELAY_MS = 2_000;
17
+ const emitInBackground = (event) => {
18
+ void context.emit(event).catch((error) => logger_1.logger.error("cursor notify emit failed", { error: String(error) }));
19
+ };
20
+ const accept = (res) => {
21
+ res.status(200).json({ ok: true, accepted: true });
22
+ };
23
+ const shouldNotifyByMarker = (signal) => (signal.agentMarker === "cursor" || signal.agentMarker === "qoder") && signal.hasChildProcess === true;
24
+ const countChildProcessesByParentPid = async (parentPid) => {
25
+ try {
26
+ const { stdout } = await execFileAsync("ps", ["-axo", "ppid=,pid="]);
27
+ const lines = String(stdout || "").split("\n");
28
+ let count = 0;
29
+ const targetParent = String(parentPid);
30
+ for (const line of lines) {
31
+ const trimmed = line.trim();
32
+ if (!trimmed) {
33
+ continue;
34
+ }
35
+ const [ppid, pid] = trimmed.split(/\s+/);
36
+ if (ppid === targetParent && pid) {
37
+ count += 1;
38
+ }
39
+ }
40
+ return count;
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ };
46
+ const cleanupPendingSignal = (key) => {
16
47
  const pending = pendingSignals.get(key);
17
48
  if (!pending) {
18
49
  return;
@@ -20,29 +51,59 @@ function createCursorHookAdapter() {
20
51
  clearTimeout(pending.notifyTimer);
21
52
  pendingSignals.delete(key);
22
53
  };
23
- const scheduleWaitingNotify = (key, signal) => {
24
- cleanupSignal(key);
54
+ const schedulePendingSignalWatch = (key, signal) => {
55
+ cleanupPendingSignal(key);
25
56
  const requestedAtMs = Date.now();
26
- const notifyTimer = setTimeout(() => {
57
+ const runProbe = (delayMs) => setTimeout(() => {
27
58
  const pending = pendingSignals.get(key);
28
59
  if (!pending || pending.notified) {
29
60
  return;
30
61
  }
31
- const waitMs = Date.now() - pending.requestedAtMs;
32
- pending.notified = true;
33
- void context
34
- .emit((0, cursor_terminal_hook_1.createCursorApprovalEvent)({
35
- signal: pending.signal,
36
- reason: "time-gap-before-after",
37
- waitMs,
38
- }))
39
- .catch((error) => logger_1.logger.error("cursor delayed notify failed", { error: String(error) }));
40
- }, REQUEST_NOTIFY_DELAY_MS);
62
+ void (async () => {
63
+ const latestCount = typeof pending.signal.parentPid === "number"
64
+ ? await countChildProcessesByParentPid(pending.signal.parentPid)
65
+ : undefined;
66
+ const hasLatestChildProcess = typeof latestCount === "number" ? latestCount > 0 : false;
67
+ if (hasLatestChildProcess) {
68
+ logger_1.logger.debug("cursor pending watch skipped: command still executing", {
69
+ key,
70
+ parentPid: pending.signal.parentPid,
71
+ latestChildCount: latestCount,
72
+ });
73
+ cleanupPendingSignal(key);
74
+ return;
75
+ }
76
+ pending.probeCount += 1;
77
+ if (pending.probeCount < 2) {
78
+ pending.notifyTimer = runProbe(WAIT_CONFIRM_DELAY_MS);
79
+ return;
80
+ }
81
+ const waitMs = Math.max(0, Date.now() - pending.requestedAtMs);
82
+ pending.notified = true;
83
+ const event = (0, cursor_terminal_hook_1.createCursorApprovalEvent)({
84
+ signal: pending.signal,
85
+ reason: "time-gap-without-child-process",
86
+ waitMs,
87
+ });
88
+ emitInBackground(event);
89
+ logger_1.logger.info("cursor hook accepted", {
90
+ dedupeKey: event.dedupeKey,
91
+ title: event.title,
92
+ level: event.level,
93
+ reason: "time-gap-without-child-process",
94
+ waitMs,
95
+ latestChildCount: latestCount,
96
+ probeCount: pending.probeCount,
97
+ });
98
+ })();
99
+ }, delayMs);
100
+ const notifyTimer = runProbe(WAIT_NOTIFY_DELAY_MS);
41
101
  pendingSignals.set(key, {
42
102
  signal,
43
103
  requestedAtMs,
44
104
  notifyTimer,
45
105
  notified: false,
106
+ probeCount: 0,
46
107
  });
47
108
  };
48
109
  context.app.post(context.config.cursorHookPath, async (req, res) => {
@@ -51,6 +112,9 @@ function createCursorHookAdapter() {
51
112
  command: req.body?.command,
52
113
  permission: req.body?.permission,
53
114
  requiresApproval: req.body?.requiresApproval,
115
+ agentMarker: req.body?.agent_marker,
116
+ hasChildProcess: req.body?.has_child_process,
117
+ parentChildCount: req.body?.parent_child_count,
54
118
  ip: req.ip || req.socket.remoteAddress,
55
119
  });
56
120
  if (!(0, hook_common_1.validateHookSourceIp)(req, context.config.allowedHookIps)) {
@@ -66,56 +130,78 @@ function createCursorHookAdapter() {
66
130
  signal,
67
131
  reason: "explicit-hook-signal",
68
132
  });
69
- void context.emit(event).catch((error) => logger_1.logger.error("cursor notify emit failed", { error: String(error) }));
133
+ emitInBackground(event);
70
134
  logger_1.logger.info("cursor hook accepted", {
71
135
  dedupeKey: event.dedupeKey,
72
136
  title: event.title,
73
137
  level: event.level,
74
138
  reason: "explicit-hook-signal",
75
139
  });
76
- res.status(200).json({ ok: true, accepted: true });
140
+ accept(res);
77
141
  return;
78
142
  }
79
- scheduleWaitingNotify(key, signal);
80
- logger_1.logger.info("cursor hook pending approval watch", {
81
- key,
82
- command: signal.command,
83
- delayMs: REQUEST_NOTIFY_DELAY_MS,
84
- });
85
- res.status(202).json({ ok: true, accepted: false, reason: "pending-time-check" });
86
- return;
87
- }
88
- const pending = pendingSignals.get(key);
89
- if (pending) {
90
- const waitMs = Math.max(typeof signal.durationMs === "number" ? signal.durationMs : 0, Date.now() - pending.requestedAtMs);
91
- clearTimeout(pending.notifyTimer);
92
- pendingSignals.delete(key);
93
- if (!pending.notified && waitMs >= WAIT_THRESHOLD_MS) {
143
+ if (shouldNotifyByMarker(signal)) {
94
144
  const event = (0, cursor_terminal_hook_1.createCursorApprovalEvent)({
95
- signal: pending.signal,
96
- reason: "time-gap-after-shell",
97
- waitMs,
145
+ signal,
146
+ reason: "agent-marker-with-child-process",
98
147
  });
99
- void context.emit(event).catch((error) => logger_1.logger.error("cursor notify emit failed", { error: String(error) }));
148
+ emitInBackground(event);
100
149
  logger_1.logger.info("cursor hook accepted", {
101
150
  dedupeKey: event.dedupeKey,
102
151
  title: event.title,
103
152
  level: event.level,
104
- reason: "time-gap-after-shell",
105
- waitMs,
153
+ reason: "agent-marker-with-child-process",
154
+ agentMarker: signal.agentMarker,
155
+ hasChildProcess: signal.hasChildProcess,
156
+ parentChildCount: signal.parentChildCount,
106
157
  });
107
- res.status(200).json({ ok: true, accepted: true });
158
+ accept(res);
108
159
  return;
109
160
  }
110
- logger_1.logger.info("cursor hook resolved quickly", {
161
+ logger_1.logger.info("cursor hook ignored by marker guard", {
111
162
  key,
112
- waitMs,
163
+ command: signal.command,
164
+ agentMarker: signal.agentMarker,
165
+ hasChildProcess: signal.hasChildProcess,
166
+ parentChildCount: signal.parentChildCount,
113
167
  });
114
- res.status(202).json({ ok: true, accepted: false, reason: "resolved-quickly" });
168
+ schedulePendingSignalWatch(key, signal);
169
+ res.status(202).json({ ok: true, accepted: false, reason: "marker-guard-not-hit" });
115
170
  return;
116
171
  }
172
+ const pending = pendingSignals.get(key);
173
+ if (pending) {
174
+ clearTimeout(pending.notifyTimer);
175
+ pendingSignals.delete(key);
176
+ }
177
+ logger_1.logger.debug("cursor afterShellExecution observed", {
178
+ key,
179
+ durationMs: signal.durationMs,
180
+ exitCode: signal.exitCode,
181
+ agentMarker: signal.agentMarker,
182
+ hasChildProcess: signal.hasChildProcess,
183
+ parentChildCount: signal.parentChildCount,
184
+ });
185
+ const events = (0, cursor_terminal_hook_1.createCursorLifecycleEvents)({ signal });
186
+ for (const event of events) {
187
+ emitInBackground(event);
188
+ }
189
+ logger_1.logger.info("cursor hook accepted", {
190
+ reason: "lifecycle-after-shell",
191
+ exitCode: signal.exitCode,
192
+ agentMarker: signal.agentMarker,
193
+ emitted: events.map((event) => ({
194
+ dedupeKey: event.dedupeKey,
195
+ title: event.title,
196
+ level: event.level,
197
+ })),
198
+ });
199
+ accept(res);
200
+ return;
117
201
  }
118
- const event = (0, cursor_terminal_hook_1.parseCursorTerminalHookEvent)(req.body) ?? (0, hook_common_2.parseHookEvent)("cursor", "cursor-hook", req.body);
202
+ const event = (0, cursor_terminal_hook_1.parseCursorSessionEndEvent)(req.body) ??
203
+ (0, cursor_terminal_hook_1.parseCursorTerminalHookEvent)(req.body) ??
204
+ (0, hook_common_1.parseHookEvent)("cursor", "cursor-hook", req.body);
119
205
  if (!event) {
120
206
  logger_1.logger.info("cursor hook ignored", {
121
207
  event: req.body?.hook_event_name,
@@ -130,7 +216,7 @@ function createCursorHookAdapter() {
130
216
  level: event.level,
131
217
  });
132
218
  await context.emit(event);
133
- res.status(200).json({ ok: true, accepted: true });
219
+ accept(res);
134
220
  });
135
221
  return () => {
136
222
  for (const pending of pendingSignals.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-hook-adapter.js","sourceRoot":"","sources":["../../src/adapters/cursor-hook-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-hook-adapter.js","sourceRoot":"","sources":["../../src/adapters/cursor-hook-adapter.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,15 @@ export type CursorTerminalSignal = {
8
8
  timestampMs: number;
9
9
  explicitApproval: boolean;
10
10
  durationMs?: number;
11
+ exitCode?: number;
12
+ status?: string;
13
+ state?: string;
14
+ agentMarker?: "cursor" | "qoder";
15
+ hasChildProcess?: boolean;
16
+ parentChildCount?: number;
17
+ parentPid?: number;
11
18
  };
19
+ export declare function isPotentiallyDangerousCommand(command: string): boolean;
12
20
  export declare function parseCursorTerminalSignal(body: unknown): CursorTerminalSignal | null;
13
21
  export declare function resolveCursorSignalKey(signal: CursorTerminalSignal): string;
14
22
  export declare function createCursorApprovalEvent(params: {
@@ -16,5 +24,9 @@ export declare function createCursorApprovalEvent(params: {
16
24
  reason?: string;
17
25
  waitMs?: number;
18
26
  }): NotifyEvent;
27
+ export declare function createCursorLifecycleEvents(params: {
28
+ signal: CursorTerminalSignal;
29
+ }): NotifyEvent[];
30
+ export declare function parseCursorSessionEndEvent(body: unknown): NotifyEvent | null;
19
31
  export declare function parseCursorTerminalHookEvent(body: unknown): NotifyEvent | null;
20
32
  //# sourceMappingURL=cursor-terminal-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-terminal-hook.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor-terminal-hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA4B7E,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,sBAAsB,GAAG,qBAAqB,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA2BF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAwBpF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAG3E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,WAAW,CA+Bd;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAM9E"}
1
+ {"version":3,"file":"cursor-terminal-hook.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor-terminal-hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAoC7E,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,sBAAsB,GAAG,qBAAqB,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMtE;AA+CD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAuCpF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAG3E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,WAAW,CAuCd;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,oBAAoB,CAAC;CAC9B,GAAG,WAAW,EAAE,CAsDhB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CA4C5E;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAM9E"}
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPotentiallyDangerousCommand = isPotentiallyDangerousCommand;
3
4
  exports.parseCursorTerminalSignal = parseCursorTerminalSignal;
4
5
  exports.resolveCursorSignalKey = resolveCursorSignalKey;
5
6
  exports.createCursorApprovalEvent = createCursorApprovalEvent;
7
+ exports.createCursorLifecycleEvents = createCursorLifecycleEvents;
8
+ exports.parseCursorSessionEndEvent = parseCursorSessionEndEvent;
6
9
  exports.parseCursorTerminalHookEvent = parseCursorTerminalHookEvent;
7
10
  const zod_1 = require("zod");
8
11
  const notify_event_1 = require("../domain/notify-event");
@@ -30,7 +33,21 @@ const cursorTerminalSchema = zod_1.z.object({
30
33
  output: zod_1.z.string().optional(),
31
34
  sandbox: zod_1.z.boolean().optional(),
32
35
  workspace_roots: zod_1.z.array(zod_1.z.string()).optional(),
36
+ agent_marker: zod_1.z.enum(["cursor", "qoder"]).optional(),
37
+ cursor_agent: zod_1.z.boolean().optional(),
38
+ qoder_agent: zod_1.z.boolean().optional(),
39
+ has_child_process: zod_1.z.boolean().optional(),
40
+ parent_child_count: zod_1.z.number().optional(),
41
+ parent_pid: zod_1.z.number().optional(),
33
42
  });
43
+ const DANGEROUS_COMMAND_PATTERNS = [/\brm\s+-rf\s+\/(?!tmp\b)/i, /\bsudo\b/i, /\bchmod\s+-R\s+777\b/i];
44
+ function isPotentiallyDangerousCommand(command) {
45
+ const text = command.trim();
46
+ if (!text) {
47
+ return false;
48
+ }
49
+ return DANGEROUS_COMMAND_PATTERNS.some((pattern) => pattern.test(text));
50
+ }
34
51
  function compactBody(parts) {
35
52
  return parts
36
53
  .map((item) => item?.trim())
@@ -52,6 +69,24 @@ function resolveExplicitApproval(payload) {
52
69
  (0, approval_match_1.isApprovalWaitingText)(payload.agentMessage ?? "") ||
53
70
  (0, approval_match_1.isApprovalWaitingText)(payload.reason ?? ""));
54
71
  }
72
+ function resolveAgentMarker(payload) {
73
+ if (payload.agent_marker === "cursor" || payload.cursor_agent === true) {
74
+ return "cursor";
75
+ }
76
+ if (payload.agent_marker === "qoder" || payload.qoder_agent === true) {
77
+ return "qoder";
78
+ }
79
+ return undefined;
80
+ }
81
+ function resolveHasChildProcess(payload) {
82
+ if (typeof payload.has_child_process === "boolean") {
83
+ return payload.has_child_process;
84
+ }
85
+ if (typeof payload.parent_child_count === "number" && Number.isFinite(payload.parent_child_count)) {
86
+ return payload.parent_child_count > 0;
87
+ }
88
+ return undefined;
89
+ }
55
90
  function parseCursorTerminalSignal(body) {
56
91
  const parsed = cursorTerminalSchema.safeParse(body);
57
92
  if (!parsed.success) {
@@ -66,6 +101,11 @@ function parseCursorTerminalSignal(body) {
66
101
  if (!command) {
67
102
  return null;
68
103
  }
104
+ const agentMarker = resolveAgentMarker(payload);
105
+ const hasChildProcess = resolveHasChildProcess(payload);
106
+ const parentChildCount = typeof payload.parent_child_count === "number" && Number.isFinite(payload.parent_child_count)
107
+ ? payload.parent_child_count
108
+ : undefined;
69
109
  return {
70
110
  hookEvent,
71
111
  command,
@@ -75,6 +115,15 @@ function parseCursorTerminalSignal(body) {
75
115
  timestampMs: Date.now(),
76
116
  explicitApproval: resolveExplicitApproval(payload),
77
117
  ...(typeof payload.duration === "number" ? { durationMs: payload.duration } : {}),
118
+ ...(typeof payload.exit_code === "number" ? { exitCode: payload.exit_code } : {}),
119
+ ...(payload.status ? { status: payload.status } : {}),
120
+ ...(payload.state ? { state: payload.state } : {}),
121
+ ...(agentMarker ? { agentMarker } : {}),
122
+ ...(typeof hasChildProcess === "boolean" ? { hasChildProcess } : {}),
123
+ ...(typeof parentChildCount === "number" ? { parentChildCount } : {}),
124
+ ...(typeof payload.parent_pid === "number" && Number.isFinite(payload.parent_pid)
125
+ ? { parentPid: payload.parent_pid }
126
+ : {}),
78
127
  };
79
128
  }
80
129
  function resolveCursorSignalKey(signal) {
@@ -83,6 +132,10 @@ function resolveCursorSignalKey(signal) {
83
132
  }
84
133
  function createCursorApprovalEvent(params) {
85
134
  const { signal } = params;
135
+ const isQoderSignal = signal.agentMarker === "qoder";
136
+ const source = isQoderSignal ? "qoder-hook" : "cursor-hook";
137
+ const editor = isQoderSignal ? "qoder" : "cursor";
138
+ const title = isQoderSignal ? "Qoder 终端等待用户同意" : "Cursor 终端等待用户同意";
86
139
  const waitSec = typeof params.waitMs === "number" && Number.isFinite(params.waitMs) ? params.waitMs / 1000 : undefined;
87
140
  const waitToken = typeof waitSec === "number" ? `${waitSec.toFixed(1)}s` : undefined;
88
141
  const bodyText = compactBody([
@@ -92,12 +145,12 @@ function createCursorApprovalEvent(params) {
92
145
  waitToken ? `等待时长: ${waitToken}` : undefined,
93
146
  ]) || signal.command;
94
147
  return (0, notify_event_1.createNotifyEvent)({
95
- source: "cursor-hook",
96
- editor: "cursor",
148
+ source,
149
+ editor,
97
150
  level: "warn",
98
- title: "Cursor 终端等待用户同意",
151
+ title,
99
152
  body: bodyText,
100
- dedupeKey: `cursor:approval:${resolveCursorSignalKey(signal)}`,
153
+ dedupeKey: `${editor}:approval:${resolveCursorSignalKey(signal)}`,
101
154
  meta: {
102
155
  hookEvent: signal.hookEvent,
103
156
  command: signal.command,
@@ -107,6 +160,107 @@ function createCursorApprovalEvent(params) {
107
160
  reason: params.reason,
108
161
  waitMs: params.waitMs,
109
162
  explicitApproval: signal.explicitApproval,
163
+ agentMarker: signal.agentMarker,
164
+ hasChildProcess: signal.hasChildProcess,
165
+ parentChildCount: signal.parentChildCount,
166
+ parentPid: signal.parentPid,
167
+ },
168
+ });
169
+ }
170
+ function createCursorLifecycleEvents(params) {
171
+ const { signal } = params;
172
+ const isQoderSignal = signal.agentMarker === "qoder";
173
+ const source = isQoderSignal ? "qoder-hook" : "cursor-hook";
174
+ const editor = isQoderSignal ? "qoder" : "cursor";
175
+ const baseTitle = isQoderSignal ? "Qoder" : "Cursor";
176
+ const stopEventName = typeof signal.exitCode === "number" && signal.exitCode !== 0 ? "StopFailure" : "Stop";
177
+ const stopTitle = stopEventName === "StopFailure" ? `${baseTitle}: 任务异常终止` : `${baseTitle}: 任务完成`;
178
+ const exitCodeToken = typeof signal.exitCode === "number" ? `退出码: ${signal.exitCode}` : undefined;
179
+ const statusToken = signal.status ? `状态: ${signal.status}` : signal.state ? `状态: ${signal.state}` : undefined;
180
+ const durationToken = typeof signal.durationMs === "number" ? `耗时: ${(signal.durationMs / 1000).toFixed(1)}s` : undefined;
181
+ const bodyText = compactBody([
182
+ `命令: ${signal.command}`,
183
+ signal.cwd ? `目录: ${signal.cwd}` : undefined,
184
+ durationToken,
185
+ exitCodeToken,
186
+ statusToken,
187
+ ]) || signal.command;
188
+ const stopLevel = stopEventName === "StopFailure" ? "error" : "info";
189
+ const signalKey = resolveCursorSignalKey(signal);
190
+ if (stopEventName === "Stop") {
191
+ return [];
192
+ }
193
+ const commonMeta = {
194
+ hookEvent: signal.hookEvent,
195
+ command: signal.command,
196
+ cwd: signal.cwd,
197
+ conversationId: signal.conversationId,
198
+ generationId: signal.generationId,
199
+ exitCode: signal.exitCode,
200
+ durationMs: signal.durationMs,
201
+ status: signal.status,
202
+ state: signal.state,
203
+ explicitApproval: signal.explicitApproval,
204
+ agentMarker: signal.agentMarker,
205
+ hasChildProcess: signal.hasChildProcess,
206
+ parentChildCount: signal.parentChildCount,
207
+ parentPid: signal.parentPid,
208
+ };
209
+ return [
210
+ (0, notify_event_1.createNotifyEvent)({
211
+ source,
212
+ editor,
213
+ level: stopLevel,
214
+ title: stopTitle,
215
+ body: bodyText,
216
+ dedupeKey: `${editor}:lifecycle:${stopEventName}:${signalKey}`,
217
+ meta: {
218
+ ...commonMeta,
219
+ eventName: stopEventName,
220
+ },
221
+ }),
222
+ ];
223
+ }
224
+ function parseCursorSessionEndEvent(body) {
225
+ const parsed = cursorTerminalSchema.safeParse(body);
226
+ if (!parsed.success) {
227
+ return null;
228
+ }
229
+ const payload = parsed.data;
230
+ if (payload.hook_event_name?.trim() !== "SessionEnd") {
231
+ return null;
232
+ }
233
+ const agentMarker = resolveAgentMarker(payload);
234
+ const isQoderSignal = agentMarker === "qoder";
235
+ const source = isQoderSignal ? "qoder-hook" : "cursor-hook";
236
+ const editor = isQoderSignal ? "qoder" : "cursor";
237
+ const baseTitle = isQoderSignal ? "Qoder" : "Cursor";
238
+ const sessionKey = [payload.conversation_id, payload.generation_id, payload.cwd, payload.message?.slice(0, 80)]
239
+ .map((item) => item?.trim())
240
+ .filter((item) => Boolean(item))
241
+ .join(":") || "unknown";
242
+ const bodyText = compactBody([
243
+ payload.message,
244
+ payload.status ? `状态: ${payload.status}` : undefined,
245
+ payload.state ? `阶段: ${payload.state}` : undefined,
246
+ payload.cwd ? `目录: ${payload.cwd}` : undefined,
247
+ ]) || "会话已结束";
248
+ return (0, notify_event_1.createNotifyEvent)({
249
+ source,
250
+ editor,
251
+ level: "info",
252
+ title: `${baseTitle}: 会话已结束`,
253
+ body: bodyText,
254
+ dedupeKey: `${editor}:lifecycle:SessionEnd:${sessionKey}`,
255
+ meta: {
256
+ eventName: "SessionEnd",
257
+ hookEvent: payload.hook_event_name,
258
+ conversationId: payload.conversation_id,
259
+ generationId: payload.generation_id,
260
+ status: payload.status,
261
+ state: payload.state,
262
+ cwd: payload.cwd,
263
+ agentMarker,
110
264
  },
111
265
  });
112
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-terminal-hook.js","sourceRoot":"","sources":["../../src/adapters/cursor-terminal-hook.ts"],"names":[],"mappings":";;AAiEA,8DAwBC;AAED,wDAGC;AAED,8DAmCC;AAED,oEAMC;AA3ID,6BAAwB;AACxB,yDAA6E;AAC7E,4DAAgE;AAEhE,MAAM,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,eAAe,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAaH,SAAS,WAAW,CAAC,KAAgC;IACnD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3B,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAA6C;IAC5E,OAAO,CACL,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,gBAAgB,KAAK,IAAI;QACjC,OAAO,CAAC,eAAe,KAAK,IAAI;QAChC,OAAO,CAAC,UAAU,KAAK,KAAK;QAC5B,OAAO,CAAC,QAAQ,KAAK,KAAK;QAC1B,OAAO,CAAC,KAAK,KAAK,wBAAwB;QAC1C,OAAO,CAAC,KAAK,KAAK,2BAA2B;QAC7C,OAAO,CAAC,MAAM,KAAK,wBAAwB;QAC3C,OAAO,CAAC,MAAM,KAAK,2BAA2B;QAC9C,IAAA,sCAAqB,EAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5C,IAAA,sCAAqB,EAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAChD,IAAA,sCAAqB,EAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QACjD,IAAA,sCAAqB,EAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAAa;IACrD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,SAAS,KAAK,sBAAsB,IAAI,SAAS,KAAK,qBAAqB,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,SAAS;QACT,OAAO;QACP,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;QACvB,gBAAgB,EAAE,uBAAuB,CAAC,OAAO,CAAC;QAClD,GAAG,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAA4B;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,cAAc,IAAI,SAAS,CAAC;IACzE,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,yBAAyB,CAAC,MAIzC;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,QAAQ,GACZ,WAAW,CAAC;QACV,OAAO,MAAM,CAAC,OAAO,EAAE;QACvB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;QAClD,SAAS,CAAC,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;KAC7C,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;IAEvB,OAAO,IAAA,gCAAiB,EAAC;QACvB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,mBAAmB,sBAAsB,CAAC,MAAM,CAAC,EAAE;QAC9D,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,4BAA4B,CAAC,IAAa;IACxD,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,sBAAsB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,yBAAyB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"cursor-terminal-hook.js","sourceRoot":"","sources":["../../src/adapters/cursor-terminal-hook.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,19 @@ export type QoderLogSignal = {
9
9
  toolCallId: string;
10
10
  outcome: "allow" | "reject" | "cancelled" | "unknown";
11
11
  logTimestampSec: number | undefined;
12
+ } | {
13
+ type: "command_completed";
14
+ command: string | undefined;
15
+ exitCode: number;
16
+ logTimestampSec: number | undefined;
12
17
  } | {
13
18
  type: "agent_suspended";
14
19
  } | {
15
20
  type: "agent_resumed";
21
+ } | {
22
+ type: "agent_session_end";
23
+ logTimestampSec: number | undefined;
24
+ sessionId: string | undefined;
16
25
  };
17
26
  export declare function parseQoderLogLine(line: string): QoderLogSignal | null;
18
27
  export declare function createQoderLogAdapter(): GatewayAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"qoder-log-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/qoder-log-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGtE,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACtD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;CACzB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AA2IN,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAyCrE;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CA0KtD"}
1
+ {"version":3,"file":"qoder-log-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/qoder-log-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGtE,MAAM,MAAM,cAAc,GACtB;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACtD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;CACzB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;CACvB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAqMN,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAkErE;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAkStD"}