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
@@ -11,11 +11,12 @@ const node_path_1 = __importDefault(require("node:path"));
11
11
  const node_readline_1 = require("node:readline");
12
12
  const notify_event_1 = require("../domain/notify-event");
13
13
  const logger_1 = require("../utils/logger");
14
- const REQUEST_NOTIFY_DELAY_MS = 1_000;
15
14
  const WAIT_THRESHOLD_SEC = 2;
16
15
  const WAIT_THRESHOLD_MS = WAIT_THRESHOLD_SEC * 1_000;
16
+ const WAIT_NOTIFY_DELAY_MS = WAIT_THRESHOLD_MS;
17
17
  const FILE_POLL_MS = 500;
18
18
  const DISCOVERY_POLL_MS = 5_000;
19
+ const COMPLETION_DEDUPE_WINDOW_MS = 3_000;
19
20
  const LOG_TIMESTAMP_RE = /^(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(?:[.,]\d{3,6})?/;
20
21
  function extractLogTimestampSec(line) {
21
22
  const match = line.match(LOG_TIMESTAMP_RE);
@@ -54,6 +55,30 @@ function detectResolveOutcome(line) {
54
55
  }
55
56
  return "unknown";
56
57
  }
58
+ function extractExitCode(line) {
59
+ const match = line.match(/exitCode[:=]\s*(-?\d+)/i);
60
+ if (!match) {
61
+ return undefined;
62
+ }
63
+ const value = Number(match[1]);
64
+ return Number.isFinite(value) ? value : undefined;
65
+ }
66
+ function extractCompletedCommand(line) {
67
+ const match = line.match(/Command finished via end event:\s*(.+?),\s*exitCode[:=]/i);
68
+ const raw = match?.[1]?.trim();
69
+ return raw && raw.length > 0 ? raw : undefined;
70
+ }
71
+ function extractSessionId(line) {
72
+ const byJson = line.match(/"sessionId"\s*:\s*"([^"]+)"/i);
73
+ if (byJson?.[1]) {
74
+ return byJson[1];
75
+ }
76
+ const byToken = line.match(/\bsessionId[=:]\s*["']?([^,"'\s}]+)/i);
77
+ if (byToken?.[1]) {
78
+ return byToken[1];
79
+ }
80
+ return undefined;
81
+ }
57
82
  function findLatestQoderSessionDir(baseDir) {
58
83
  if (!(0, node_fs_1.existsSync)(baseDir)) {
59
84
  return undefined;
@@ -74,6 +99,20 @@ function findLatestQoderSessionDir(baseDir) {
74
99
  }
75
100
  return latestDir;
76
101
  }
102
+ function findRecentQoderSessionDirs(baseDir, limit) {
103
+ if (!(0, node_fs_1.existsSync)(baseDir)) {
104
+ return [];
105
+ }
106
+ const entries = (0, node_fs_1.readdirSync)(baseDir, { withFileTypes: true }).filter((entry) => entry.isDirectory());
107
+ return entries
108
+ .map((entry) => {
109
+ const fullPath = node_path_1.default.join(baseDir, entry.name);
110
+ return { fullPath, mtime: (0, node_fs_1.statSync)(fullPath).mtimeMs };
111
+ })
112
+ .sort((a, b) => b.mtime - a.mtime)
113
+ .slice(0, Math.max(1, limit))
114
+ .map((item) => item.fullPath);
115
+ }
77
116
  function collectAgentLogsRecursively(rootDir) {
78
117
  if (!(0, node_fs_1.existsSync)(rootDir)) {
79
118
  return [];
@@ -107,24 +146,37 @@ function collectAgentLogsRecursively(rootDir) {
107
146
  }
108
147
  function resolveQoderLogPaths(configPath) {
109
148
  if (configPath) {
110
- if (!(0, node_fs_1.existsSync)(configPath)) {
149
+ if ((0, node_fs_1.existsSync)(configPath)) {
150
+ const stats = (0, node_fs_1.statSync)(configPath);
151
+ if (stats.isFile()) {
152
+ return [configPath];
153
+ }
154
+ if (stats.isDirectory()) {
155
+ return collectAgentLogsRecursively(configPath);
156
+ }
111
157
  return [];
112
158
  }
113
- const stats = (0, node_fs_1.statSync)(configPath);
114
- if (stats.isFile()) {
115
- return [configPath];
116
- }
117
- if (stats.isDirectory()) {
118
- return collectAgentLogsRecursively(configPath);
119
- }
120
- return [];
159
+ // Invalid explicit path: gracefully fall back to auto-discovery.
121
160
  }
122
161
  const qoderBase = node_path_1.default.join(node_os_1.default.homedir(), "Library", "Application Support", "Qoder", "logs");
123
162
  const latestSessionDir = findLatestQoderSessionDir(qoderBase);
124
- if (!latestSessionDir) {
163
+ const candidateRoots = latestSessionDir
164
+ ? [latestSessionDir, ...findRecentQoderSessionDirs(qoderBase, 5).filter((item) => item !== latestSessionDir)]
165
+ : findRecentQoderSessionDirs(qoderBase, 5);
166
+ const logs = new Set();
167
+ for (const root of candidateRoots) {
168
+ for (const logPath of collectAgentLogsRecursively(root)) {
169
+ logs.add(logPath);
170
+ }
171
+ }
172
+ if (logs.size > 0) {
173
+ return Array.from(logs);
174
+ }
175
+ // Fallback: scan all sessions if recent sessions don't contain agent.log yet.
176
+ if (!(0, node_fs_1.existsSync)(qoderBase)) {
125
177
  return [];
126
178
  }
127
- return collectAgentLogsRecursively(latestSessionDir);
179
+ return collectAgentLogsRecursively(qoderBase);
128
180
  }
129
181
  function parseQoderLogLine(line) {
130
182
  const text = line.trim();
@@ -155,10 +207,29 @@ function parseQoderLogLine(line) {
155
207
  logTimestampSec: extractLogTimestampSec(text),
156
208
  };
157
209
  }
210
+ if (/Command finished via end event|Command execution completed|Command completed|Temporary command completed/i.test(text)) {
211
+ const exitCode = extractExitCode(text);
212
+ if (typeof exitCode !== "number") {
213
+ return null;
214
+ }
215
+ return {
216
+ type: "command_completed",
217
+ command: extractCompletedCommand(text),
218
+ exitCode,
219
+ logTimestampSec: extractLogTimestampSec(text),
220
+ };
221
+ }
158
222
  if (/streaming -> suspended.*permission_request/i.test(text)) {
159
223
  return { type: "agent_suspended" };
160
224
  }
161
- if (/suspended -> (streaming|cancelled)/i.test(text)) {
225
+ if (/suspended -> cancelled|session (ended|closed)|State transition:\s*streaming\s*->\s*completed|ACP stream completed|Closed tab:/i.test(text)) {
226
+ return {
227
+ type: "agent_session_end",
228
+ logTimestampSec: extractLogTimestampSec(text),
229
+ sessionId: extractSessionId(text),
230
+ };
231
+ }
232
+ if (/suspended -> streaming/i.test(text)) {
162
233
  return { type: "agent_resumed" };
163
234
  }
164
235
  return null;
@@ -168,6 +239,7 @@ function createQoderLogAdapter() {
168
239
  id: "qoder-log-adapter",
169
240
  async start(context) {
170
241
  const pendingRequests = new Map();
242
+ const recentCompletionKeys = new Map();
171
243
  const cursors = new Map();
172
244
  let filePollTimer;
173
245
  let discoveryPollTimer;
@@ -177,17 +249,84 @@ function createQoderLogAdapter() {
177
249
  source: "qoder-log",
178
250
  editor: "qoder",
179
251
  level: "warn",
180
- title: "Qoder waiting for approval",
181
- body: `${toolName || "tool"} waiting for your approval`,
252
+ title: "Qoder 终端等待用户同意",
253
+ body: `${toolName || "tool"} 等待你的同意`,
182
254
  dedupeKey: `qoder-log:pending:${toolCallId}`,
183
255
  meta: {
184
256
  toolCallId,
185
257
  toolName,
258
+ eventName: "ApprovalRequired",
186
259
  },
187
260
  });
188
261
  await context.emit(event);
189
262
  };
263
+ const emitFailureLifecycleNotification = async (params) => {
264
+ const waitText = typeof params.waitSec === "number" && Number.isFinite(params.waitSec)
265
+ ? `,等待 ${(Math.max(0, params.waitSec)).toFixed(1)}s`
266
+ : "";
267
+ if (params.outcome === "allow") {
268
+ return;
269
+ }
270
+ const stopEventName = "StopFailure";
271
+ const stopTitle = "Qoder: 任务异常终止";
272
+ const stopBody = params.reason === "approval"
273
+ ? `${params.subject} 已处理同意请求${waitText}`
274
+ : `${params.subject} 执行结束(退出码 ${params.exitCode ?? 1})${waitText}`;
275
+ const commonMeta = {
276
+ subject: params.subject,
277
+ waitSec: params.waitSec,
278
+ outcome: params.outcome,
279
+ reason: params.reason,
280
+ };
281
+ await context.emit((0, notify_event_1.createNotifyEvent)({
282
+ source: "qoder-log",
283
+ editor: "qoder",
284
+ level: "error",
285
+ title: stopTitle,
286
+ body: stopBody,
287
+ dedupeKey: `qoder-log:lifecycle:${stopEventName}:${params.dedupeToken}`,
288
+ meta: {
289
+ ...commonMeta,
290
+ eventName: stopEventName,
291
+ },
292
+ }));
293
+ };
294
+ const emitSessionEndNotification = async (params) => {
295
+ await context.emit((0, notify_event_1.createNotifyEvent)({
296
+ source: "qoder-log",
297
+ editor: "qoder",
298
+ level: "info",
299
+ title: "Qoder: 会话已结束",
300
+ body: params.subject ? `${params.subject} 会话已结束` : "Qoder 会话已结束",
301
+ dedupeKey: `qoder-log:lifecycle:SessionEnd:${params.dedupeToken}`,
302
+ meta: {
303
+ eventName: "SessionEnd",
304
+ subject: params.subject,
305
+ },
306
+ }));
307
+ };
190
308
  const handleSignal = async (signal) => {
309
+ if (signal.type === "agent_session_end") {
310
+ const dedupeToken = signal.sessionId ||
311
+ (typeof signal.logTimestampSec === "number" && Number.isFinite(signal.logTimestampSec)
312
+ ? String(signal.logTimestampSec)
313
+ : String(Math.floor(Date.now() / 1000)));
314
+ emitSessionEndNotification({
315
+ dedupeToken,
316
+ ...(signal.sessionId ? { subject: `session ${signal.sessionId}` } : {}),
317
+ }).catch((error) => {
318
+ logger_1.logger.error("qoder session end notify failed", { error: String(error) });
319
+ });
320
+ return;
321
+ }
322
+ if (signal.type === "agent_suspended") {
323
+ logger_1.logger.debug("qoder agent suspended for permission request");
324
+ return;
325
+ }
326
+ if (signal.type === "agent_resumed") {
327
+ logger_1.logger.debug("qoder agent resumed");
328
+ return;
329
+ }
191
330
  if (signal.type === "permission_requested") {
192
331
  const existing = pendingRequests.get(signal.toolCallId);
193
332
  if (existing) {
@@ -201,7 +340,7 @@ function createQoderLogAdapter() {
201
340
  emitWaitingNotification(signal.toolCallId, pending.toolName).catch((error) => {
202
341
  logger_1.logger.error("qoder log notify failed", { error: String(error) });
203
342
  });
204
- }, Math.max(REQUEST_NOTIFY_DELAY_MS, WAIT_THRESHOLD_MS));
343
+ }, WAIT_NOTIFY_DELAY_MS);
205
344
  pendingRequests.set(signal.toolCallId, {
206
345
  toolName: signal.toolName,
207
346
  requestLogSec: signal.logTimestampSec,
@@ -224,15 +363,44 @@ function createQoderLogAdapter() {
224
363
  outcome: signal.outcome,
225
364
  });
226
365
  }
366
+ emitFailureLifecycleNotification({
367
+ dedupeToken: signal.toolCallId,
368
+ subject: pending.toolName || "tool",
369
+ ...(typeof waitSec === "number" ? { waitSec } : {}),
370
+ outcome: signal.outcome,
371
+ reason: "approval",
372
+ }).catch((error) => {
373
+ logger_1.logger.error("qoder lifecycle notify failed", { error: String(error) });
374
+ });
227
375
  pendingRequests.delete(signal.toolCallId);
228
376
  }
229
377
  return;
230
378
  }
231
- if (signal.type === "agent_suspended") {
232
- logger_1.logger.debug("qoder agent suspended for permission request");
379
+ const now = Date.now();
380
+ for (const [key, ts] of recentCompletionKeys.entries()) {
381
+ if (now - ts > COMPLETION_DEDUPE_WINDOW_MS) {
382
+ recentCompletionKeys.delete(key);
383
+ }
384
+ }
385
+ const timePart = typeof signal.logTimestampSec === "number" && Number.isFinite(signal.logTimestampSec)
386
+ ? String(signal.logTimestampSec)
387
+ : String(Math.floor(now / 1000));
388
+ const commandPart = signal.command?.trim() || "unknown-command";
389
+ const completionKey = `${timePart}:${commandPart}:${signal.exitCode}`;
390
+ if (recentCompletionKeys.has(completionKey)) {
233
391
  return;
234
392
  }
235
- logger_1.logger.debug("qoder agent resumed");
393
+ recentCompletionKeys.set(completionKey, now);
394
+ const outcome = signal.exitCode === 0 ? "allow" : "reject";
395
+ emitFailureLifecycleNotification({
396
+ dedupeToken: completionKey,
397
+ subject: signal.command || "terminal 命令",
398
+ outcome,
399
+ reason: "command",
400
+ exitCode: signal.exitCode,
401
+ }).catch((error) => {
402
+ logger_1.logger.error("qoder lifecycle notify failed", { error: String(error) });
403
+ });
236
404
  };
237
405
  const ingestLine = async (line) => {
238
406
  const signal = parseQoderLogLine(line);
@@ -312,6 +480,7 @@ function createQoderLogAdapter() {
312
480
  clearTimeout(pending.notifyTimer);
313
481
  }
314
482
  pendingRequests.clear();
483
+ recentCompletionKeys.clear();
315
484
  };
316
485
  return stop;
317
486
  },
@@ -1 +1 @@
1
- {"version":3,"file":"qoder-log-adapter.js","sourceRoot":"","sources":["../../src/adapters/qoder-log-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qoder-log-adapter.js","sourceRoot":"","sources":["../../src/adapters/qoder-log-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAqC,KAAK,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,CAuGlG"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAqC,KAAK,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3F,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,CA4HlG"}
package/dist/bootstrap.js CHANGED
@@ -15,22 +15,40 @@ const qoder_log_adapter_1 = require("./adapters/qoder-log-adapter");
15
15
  const adapter_registry_1 = require("./gateway/adapter-registry");
16
16
  const event_router_1 = require("./gateway/event-router");
17
17
  const desktop_notifier_1 = require("./notifiers/desktop-notifier");
18
+ const dingtalk_notifier_1 = require("./notifiers/dingtalk-notifier");
19
+ const feishu_notifier_1 = require("./notifiers/feishu-notifier");
18
20
  const mobile_ws_notifier_1 = require("./notifiers/mobile-ws-notifier");
21
+ const wecom_notifier_1 = require("./notifiers/wecom-notifier");
19
22
  function createGateway(config, overrides) {
20
23
  const app = (0, express_1.default)();
21
24
  const recentEvents = [];
22
25
  const RECENT_EVENTS_MAX = 100;
23
26
  const server = config.httpsEnabled === true
24
27
  ? (0, node_https_1.createServer)({
25
- cert: (0, node_fs_1.readFileSync)(node_path_1.default.resolve(process.cwd(), config.httpsCertPath)),
26
- key: (0, node_fs_1.readFileSync)(node_path_1.default.resolve(process.cwd(), config.httpsKeyPath)),
28
+ cert: (0, node_fs_1.readFileSync)(node_path_1.default.resolve(config.httpsCertPath)),
29
+ key: (0, node_fs_1.readFileSync)(node_path_1.default.resolve(config.httpsKeyPath)),
27
30
  }, app)
28
31
  : (0, node_http_1.createServer)(app);
29
32
  app.use(express_1.default.json({ limit: "256kb" }));
30
33
  app.use(express_1.default.urlencoded({ extended: false }));
31
34
  const mobileWsNotifier = new mobile_ws_notifier_1.MobileWsNotifier();
32
35
  const desktopNotifier = new desktop_notifier_1.DesktopNotifier();
33
- const defaultNotifiers = [desktopNotifier, mobileWsNotifier];
36
+ const defaultNotifiers = [];
37
+ if (config.desktopEnabled) {
38
+ defaultNotifiers.push(desktopNotifier);
39
+ }
40
+ if (config.pwaEnabled) {
41
+ defaultNotifiers.push(mobileWsNotifier);
42
+ }
43
+ if (config.dingtalkEnabled && config.dingtalkWebhook) {
44
+ defaultNotifiers.push(new dingtalk_notifier_1.DingTalkNotifier({ webhook: config.dingtalkWebhook, secret: config.dingtalkSecret }));
45
+ }
46
+ if (config.feishuEnabled && config.feishuWebhook) {
47
+ defaultNotifiers.push(new feishu_notifier_1.FeishuNotifier({ webhook: config.feishuWebhook, secret: config.feishuSecret }));
48
+ }
49
+ if (config.wecomEnabled && config.wecomWebhook) {
50
+ defaultNotifiers.push(new wecom_notifier_1.WeComNotifier({ webhook: config.wecomWebhook }));
51
+ }
34
52
  const router = new event_router_1.EventRouter(overrides?.notifiers ?? defaultNotifiers, {
35
53
  dedupeWindowMs: config.dedupeWindowMs,
36
54
  rateLimitWindowMs: config.rateLimitWindowMs,
@@ -64,7 +82,7 @@ function createGateway(config, overrides) {
64
82
  .sort((a, b) => a.timestamp - b.timestamp);
65
83
  res.json({ ok: true, events, now: Date.now() });
66
84
  });
67
- const staticDir = node_path_1.default.resolve(process.cwd(), config.webRootPath);
85
+ const staticDir = node_path_1.default.resolve(config.webRootPath);
68
86
  app.use("/", express_1.default.static(staticDir, {
69
87
  etag: false,
70
88
  lastModified: false,
@@ -83,7 +101,9 @@ function createGateway(config, overrides) {
83
101
  if (started) {
84
102
  return;
85
103
  }
86
- mobileWsNotifier.attach(server, config.wsPath);
104
+ if (config.pwaEnabled) {
105
+ mobileWsNotifier.attach(server, config.wsPath);
106
+ }
87
107
  await registry.startAll({
88
108
  app,
89
109
  config,
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,21 +1,57 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
38
  };
6
39
  Object.defineProperty(exports, "__esModule", { value: true });
7
40
  const node_child_process_1 = require("node:child_process");
8
41
  const node_fs_1 = require("node:fs");
9
- const node_os_1 = __importDefault(require("node:os"));
10
42
  const node_path_1 = __importDefault(require("node:path"));
43
+ const paths_1 = require("./paths");
11
44
  const run_gateway_1 = require("./run-gateway");
12
45
  function printHelp() {
13
46
  console.log(`agentwake CLI
14
47
 
15
48
  Usage:
16
- agentwake init
17
- agentwake start [--host <host>] [--port <port>]
18
- agentwake help
49
+ agentwake setup 交互式配置向导
50
+ agentwake init 非交互式初始化(HTTPS + mkcert)
51
+ agentwake start [--host <host>] [--port <port>] 启动服务
52
+ agentwake help 帮助信息
53
+
54
+ 数据目录: ~/.agentwake/
19
55
  `);
20
56
  }
21
57
  function parseStartFlags(args) {
@@ -34,23 +70,32 @@ function parseStartFlags(args) {
34
70
  }
35
71
  }
36
72
  function ensureEnvFile() {
37
- const envPath = node_path_1.default.join(process.cwd(), ".env");
38
- const envExamplePath = node_path_1.default.join(process.cwd(), ".env.example");
39
- if (!(0, node_fs_1.existsSync)(envPath) && (0, node_fs_1.existsSync)(envExamplePath)) {
40
- (0, node_fs_1.copyFileSync)(envExamplePath, envPath);
73
+ const envPath = (0, paths_1.homePath)(".env");
74
+ if ((0, node_fs_1.existsSync)(envPath))
75
+ return;
76
+ (0, paths_1.ensureHome)();
77
+ const candidates = [
78
+ node_path_1.default.join(paths_1.PKG_ROOT, ".env.example"),
79
+ ];
80
+ for (const src of candidates) {
81
+ if ((0, node_fs_1.existsSync)(src)) {
82
+ (0, node_fs_1.copyFileSync)(src, envPath);
83
+ return;
84
+ }
41
85
  }
42
86
  }
43
87
  function ensureHttpsEnv() {
44
- const envPath = node_path_1.default.join(process.cwd(), ".env");
88
+ const envPath = (0, paths_1.homePath)(".env");
45
89
  if (!(0, node_fs_1.existsSync)(envPath)) {
46
- throw new Error(".env not found in current directory");
90
+ throw new Error(".env not found. Run `agentwake init` first.");
47
91
  }
92
+ const certDir = (0, paths_1.homePath)("certs");
48
93
  const raw = (0, node_fs_1.readFileSync)(envPath, "utf8");
49
94
  let next = raw;
50
95
  const upserts = [
51
96
  [/^AGENTWAKE_HTTPS_ENABLED=.*$/m, "AGENTWAKE_HTTPS_ENABLED=1"],
52
- [/^AGENTWAKE_HTTPS_CERT_PATH=.*$/m, "AGENTWAKE_HTTPS_CERT_PATH=certs/dev-cert.pem"],
53
- [/^AGENTWAKE_HTTPS_KEY_PATH=.*$/m, "AGENTWAKE_HTTPS_KEY_PATH=certs/dev-key.pem"],
97
+ [/^AGENTWAKE_HTTPS_CERT_PATH=.*$/m, `AGENTWAKE_HTTPS_CERT_PATH=${certDir}/dev-cert.pem`],
98
+ [/^AGENTWAKE_HTTPS_KEY_PATH=.*$/m, `AGENTWAKE_HTTPS_KEY_PATH=${certDir}/dev-key.pem`],
54
99
  ];
55
100
  for (const [pattern, replacement] of upserts) {
56
101
  if (pattern.test(next)) {
@@ -63,6 +108,7 @@ function ensureHttpsEnv() {
63
108
  (0, node_fs_1.writeFileSync)(envPath, next, "utf8");
64
109
  }
65
110
  function ensureHooksHttps() {
111
+ // Cursor hooks live in the project cwd, not in ~/.agentwake
66
112
  const hooksPath = node_path_1.default.join(process.cwd(), ".cursor", "hooks.json");
67
113
  if (!(0, node_fs_1.existsSync)(hooksPath)) {
68
114
  return;
@@ -84,7 +130,7 @@ function ensureHooksHttps() {
84
130
  (0, node_fs_1.writeFileSync)(hooksPath, `${JSON.stringify(parsed, null, 2)}\n`, "utf8");
85
131
  }
86
132
  function ensureNodeExtraCaEnvHint() {
87
- const envPath = node_path_1.default.join(process.cwd(), ".env");
133
+ const envPath = (0, paths_1.homePath)(".env");
88
134
  if (!(0, node_fs_1.existsSync)(envPath)) {
89
135
  return;
90
136
  }
@@ -106,7 +152,8 @@ function ensureNodeExtraCaEnvHint() {
106
152
  (0, node_fs_1.writeFileSync)(envPath, next, "utf8");
107
153
  }
108
154
  function resolveLanIpv4() {
109
- const interfaces = node_os_1.default.networkInterfaces();
155
+ const os = require("node:os");
156
+ const interfaces = os.networkInterfaces();
110
157
  for (const entries of Object.values(interfaces)) {
111
158
  if (!entries) {
112
159
  continue;
@@ -123,9 +170,9 @@ function run(command) {
123
170
  (0, node_child_process_1.execSync)(command, { stdio: "inherit" });
124
171
  }
125
172
  function setupMkcert() {
126
- const certDir = node_path_1.default.join(process.cwd(), "certs");
173
+ const certDir = (0, paths_1.homePath)("certs");
127
174
  if (!(0, node_fs_1.existsSync)(certDir)) {
128
- (0, node_child_process_1.execSync)(`mkdir -p "${certDir}"`);
175
+ (0, node_fs_1.mkdirSync)(certDir, { recursive: true });
129
176
  }
130
177
  try {
131
178
  run("mkcert -help > /dev/null");
@@ -144,7 +191,9 @@ function setupMkcert() {
144
191
  if (lanIp) {
145
192
  san.push(lanIp);
146
193
  }
147
- run(`mkcert -cert-file certs/dev-cert.pem -key-file certs/dev-key.pem ${san.join(" ")}`);
194
+ const certPath = `${certDir}/dev-cert.pem`;
195
+ const keyPath = `${certDir}/dev-key.pem`;
196
+ run(`mkcert -cert-file "${certPath}" -key-file "${keyPath}" ${san.join(" ")}`);
148
197
  try {
149
198
  const caRoot = (0, node_child_process_1.execSync)("mkcert -CAROOT", { encoding: "utf8" }).trim();
150
199
  console.log(`[agentwake] export this for Node.js trust:`);
@@ -155,12 +204,21 @@ function setupMkcert() {
155
204
  }
156
205
  }
157
206
  function initProject() {
207
+ (0, paths_1.ensureHome)();
158
208
  ensureEnvFile();
159
209
  ensureHttpsEnv();
160
210
  ensureHooksHttps();
161
211
  setupMkcert();
162
212
  ensureNodeExtraCaEnvHint();
163
- console.log("[agentwake] init completed with HTTPS defaults.");
213
+ console.log(`[agentwake] init completed. Data dir: ${(0, paths_1.homePath)()}`);
214
+ }
215
+ /** Load .env from ~/.agentwake/.env into process.env. */
216
+ async function loadHomeEnv() {
217
+ const envPath = (0, paths_1.homePath)(".env");
218
+ if ((0, node_fs_1.existsSync)(envPath)) {
219
+ const dotenv = await Promise.resolve().then(() => __importStar(require("dotenv")));
220
+ dotenv.config({ path: envPath });
221
+ }
164
222
  }
165
223
  async function main() {
166
224
  const [cmd = "start", ...rest] = process.argv.slice(2);
@@ -172,9 +230,14 @@ async function main() {
172
230
  initProject();
173
231
  return;
174
232
  }
233
+ if (cmd === "setup") {
234
+ const { runSetup } = await Promise.resolve().then(() => __importStar(require("./setup")));
235
+ await runSetup();
236
+ return;
237
+ }
175
238
  if (cmd === "start") {
176
239
  parseStartFlags(rest);
177
- process.env.AGENTWAKE_HTTPS_ENABLED = "1";
240
+ await loadHomeEnv();
178
241
  await (0, run_gateway_1.runGateway)();
179
242
  return;
180
243
  }