sessix-server 0.2.4 → 0.2.6
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.
- package/dist/approval/ApprovalProxy.d.ts +0 -10
- package/dist/approval/ApprovalProxy.d.ts.map +1 -1
- package/dist/approval/ApprovalProxy.js +6 -44
- package/dist/approval/ApprovalProxy.js.map +1 -1
- package/dist/hooks/HookInstaller.d.ts +7 -11
- package/dist/hooks/HookInstaller.d.ts.map +1 -1
- package/dist/hooks/HookInstaller.js +49 -96
- package/dist/hooks/HookInstaller.js.map +1 -1
- package/dist/index.js +205 -145
- package/dist/notification/ExpoNotificationChannel.d.ts.map +1 -1
- package/dist/notification/ExpoNotificationChannel.js +1 -9
- package/dist/notification/ExpoNotificationChannel.js.map +1 -1
- package/dist/notification/NotificationService.d.ts +1 -1
- package/dist/notification/NotificationService.d.ts.map +1 -1
- package/dist/notification/NotificationService.js +5 -13
- package/dist/notification/NotificationService.js.map +1 -1
- package/dist/providers/ExecutionProvider.d.ts +2 -8
- package/dist/providers/ExecutionProvider.d.ts.map +1 -1
- package/dist/providers/ProcessProvider.d.ts +2 -2
- package/dist/providers/ProcessProvider.d.ts.map +1 -1
- package/dist/providers/ProcessProvider.js +15 -49
- package/dist/providers/ProcessProvider.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +198 -139
- package/dist/server.js.map +1 -1
- package/dist/session/ProjectReader.js +1 -1
- package/dist/session/ProjectReader.js.map +1 -1
- package/dist/session/SessionManager.d.ts +3 -7
- package/dist/session/SessionManager.d.ts.map +1 -1
- package/dist/session/SessionManager.js +5 -45
- package/dist/session/SessionManager.js.map +1 -1
- package/dist/ws/WsBridge.js +4 -4
- package/dist/ws/WsBridge.js.map +1 -1
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -295,38 +295,87 @@ function t(key, params) {
|
|
|
295
295
|
// src/server.ts
|
|
296
296
|
var import_uuid4 = require("uuid");
|
|
297
297
|
var import_promises4 = require("fs/promises");
|
|
298
|
-
var
|
|
299
|
-
var
|
|
300
|
-
var
|
|
298
|
+
var import_node_os6 = require("os");
|
|
299
|
+
var import_node_path5 = require("path");
|
|
300
|
+
var import_node_child_process4 = require("child_process");
|
|
301
301
|
var import_node_util = require("util");
|
|
302
302
|
|
|
303
303
|
// src/providers/ProcessProvider.ts
|
|
304
|
-
var
|
|
304
|
+
var import_child_process = require("child_process");
|
|
305
305
|
var import_readline = require("readline");
|
|
306
306
|
var import_events = require("events");
|
|
307
|
-
var
|
|
307
|
+
var import_node_os2 = require("os");
|
|
308
308
|
var import_uuid = require("uuid");
|
|
309
309
|
|
|
310
310
|
// src/utils/claudePath.ts
|
|
311
|
-
var
|
|
311
|
+
var import_node_child_process2 = require("child_process");
|
|
312
|
+
var import_node_fs = require("fs");
|
|
313
|
+
var import_node_path = require("path");
|
|
314
|
+
var import_node_os = require("os");
|
|
315
|
+
|
|
316
|
+
// src/utils/platform.ts
|
|
317
|
+
var import_node_child_process = require("child_process");
|
|
318
|
+
var isWindows = process.platform === "win32";
|
|
319
|
+
function killProcessCrossPlatform(proc, timeoutMs = 3e3) {
|
|
320
|
+
return new Promise((resolve) => {
|
|
321
|
+
if (proc.exitCode !== null || proc.signalCode !== null) {
|
|
322
|
+
resolve();
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
const onExit = () => {
|
|
326
|
+
clearTimeout(timer);
|
|
327
|
+
resolve();
|
|
328
|
+
};
|
|
329
|
+
proc.once("exit", onExit);
|
|
330
|
+
if (isWindows) {
|
|
331
|
+
if (proc.pid) {
|
|
332
|
+
(0, import_node_child_process.spawn)("taskkill", ["/PID", String(proc.pid), "/T", "/F"], { stdio: "ignore" });
|
|
333
|
+
}
|
|
334
|
+
} else {
|
|
335
|
+
proc.kill("SIGTERM");
|
|
336
|
+
}
|
|
337
|
+
const timer = setTimeout(() => {
|
|
338
|
+
if (proc.exitCode === null && proc.signalCode === null) {
|
|
339
|
+
if (!isWindows) {
|
|
340
|
+
proc.kill("SIGKILL");
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
resolve();
|
|
344
|
+
}, timeoutMs);
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
function isNormalExit(code, signal) {
|
|
348
|
+
if (code === 0) return true;
|
|
349
|
+
if (isWindows) {
|
|
350
|
+
return code === 1;
|
|
351
|
+
}
|
|
352
|
+
return code === 143 || signal === "SIGTERM";
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
// src/utils/claudePath.ts
|
|
312
356
|
function findClaudePath() {
|
|
313
357
|
try {
|
|
314
|
-
|
|
358
|
+
const cmd = isWindows ? "where claude" : "which claude";
|
|
359
|
+
return (0, import_node_child_process2.execSync)(cmd, { encoding: "utf-8" }).trim().split("\n")[0];
|
|
315
360
|
} catch {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
361
|
+
}
|
|
362
|
+
const candidates = isWindows ? [
|
|
363
|
+
(0, import_node_path.join)(process.env.LOCALAPPDATA ?? "", "Programs", "claude", "claude.exe"),
|
|
364
|
+
(0, import_node_path.join)((0, import_node_os.homedir)(), "AppData", "Local", "Programs", "claude", "claude.exe"),
|
|
365
|
+
(0, import_node_path.join)((0, import_node_os.homedir)(), ".claude", "local", "claude.exe")
|
|
366
|
+
] : [
|
|
367
|
+
(0, import_node_path.join)((0, import_node_os.homedir)(), ".local", "bin", "claude"),
|
|
368
|
+
"/usr/local/bin/claude",
|
|
369
|
+
"/opt/homebrew/bin/claude"
|
|
370
|
+
];
|
|
371
|
+
for (const candidate of candidates) {
|
|
372
|
+
try {
|
|
373
|
+
(0, import_node_fs.accessSync)(candidate, import_node_fs.constants.X_OK);
|
|
374
|
+
return candidate;
|
|
375
|
+
} catch {
|
|
327
376
|
}
|
|
328
|
-
return "claude";
|
|
329
377
|
}
|
|
378
|
+
return "claude";
|
|
330
379
|
}
|
|
331
380
|
|
|
332
381
|
// src/providers/ProcessProvider.ts
|
|
@@ -399,19 +448,7 @@ var ProcessProvider = class {
|
|
|
399
448
|
entry.process.stdin?.end();
|
|
400
449
|
} catch {
|
|
401
450
|
}
|
|
402
|
-
entry.process
|
|
403
|
-
await new Promise((resolve) => {
|
|
404
|
-
const timeout = setTimeout(() => {
|
|
405
|
-
if (entry.process.exitCode === null && entry.process.signalCode === null) {
|
|
406
|
-
entry.process.kill("SIGKILL");
|
|
407
|
-
}
|
|
408
|
-
resolve();
|
|
409
|
-
}, 3e3);
|
|
410
|
-
entry.process.once("exit", () => {
|
|
411
|
-
clearTimeout(timeout);
|
|
412
|
-
resolve();
|
|
413
|
-
});
|
|
414
|
-
});
|
|
451
|
+
await killProcessCrossPlatform(entry.process);
|
|
415
452
|
}
|
|
416
453
|
this.emittedQuestionToolUseIds.delete(sessionId);
|
|
417
454
|
this.activeSessions.delete(sessionId);
|
|
@@ -441,7 +478,7 @@ var ProcessProvider = class {
|
|
|
441
478
|
entry.process.stdin?.end();
|
|
442
479
|
} catch {
|
|
443
480
|
}
|
|
444
|
-
entry.process
|
|
481
|
+
killProcessCrossPlatform(entry.process);
|
|
445
482
|
}
|
|
446
483
|
} else {
|
|
447
484
|
console.log(`[ProcessProvider] Session ${sessionId}: process exited, respawning`);
|
|
@@ -523,7 +560,7 @@ var ProcessProvider = class {
|
|
|
523
560
|
}
|
|
524
561
|
const env = { ...process.env, SESSIX_SESSION_ID: sessionId };
|
|
525
562
|
delete env.CLAUDECODE;
|
|
526
|
-
const proc = (0,
|
|
563
|
+
const proc = (0, import_child_process.spawn)(CLAUDE_PATH, args, {
|
|
527
564
|
cwd: projectPath,
|
|
528
565
|
env,
|
|
529
566
|
stdio: ["pipe", "pipe", "pipe"]
|
|
@@ -669,7 +706,7 @@ var ProcessProvider = class {
|
|
|
669
706
|
entry.session.lastActiveAt = Date.now();
|
|
670
707
|
const alreadyHasResult = entry.session.status === "idle" || entry.session.status === "error";
|
|
671
708
|
if (alreadyHasResult) return;
|
|
672
|
-
const isNormal = code
|
|
709
|
+
const isNormal = isNormalExit(code, signal);
|
|
673
710
|
entry.session.status = isNormal ? "idle" : "error";
|
|
674
711
|
if (!isNormal) {
|
|
675
712
|
console.error(
|
|
@@ -735,8 +772,8 @@ ${context}`;
|
|
|
735
772
|
return new Promise((resolve, reject) => {
|
|
736
773
|
const env = { ...process.env };
|
|
737
774
|
delete env.CLAUDECODE;
|
|
738
|
-
const proc = (0,
|
|
739
|
-
cwd: (0,
|
|
775
|
+
const proc = (0, import_child_process.spawn)(CLAUDE_PATH, ["-p", prompt, "--output-format", "text"], {
|
|
776
|
+
cwd: (0, import_node_os2.homedir)(),
|
|
740
777
|
env,
|
|
741
778
|
stdio: ["pipe", "pipe", "pipe"]
|
|
742
779
|
});
|
|
@@ -1628,15 +1665,15 @@ var WsBridge = class _WsBridge {
|
|
|
1628
1665
|
|
|
1629
1666
|
// src/approval/ApprovalProxy.ts
|
|
1630
1667
|
var import_node_http = __toESM(require("http"));
|
|
1631
|
-
var
|
|
1632
|
-
var
|
|
1633
|
-
var
|
|
1668
|
+
var import_node_fs2 = __toESM(require("fs"));
|
|
1669
|
+
var import_node_path2 = __toESM(require("path"));
|
|
1670
|
+
var import_node_os3 = __toESM(require("os"));
|
|
1634
1671
|
var import_uuid3 = require("uuid");
|
|
1635
1672
|
var ApprovalProxy = class _ApprovalProxy {
|
|
1636
1673
|
server;
|
|
1637
1674
|
token;
|
|
1638
1675
|
port;
|
|
1639
|
-
settingsPath =
|
|
1676
|
+
settingsPath = import_node_path2.default.join(import_node_os3.default.homedir(), ".claude", "settings.json");
|
|
1640
1677
|
/** 待处理的审批请求:requestId -> { resolve, timer, request } */
|
|
1641
1678
|
pendingApprovals = /* @__PURE__ */ new Map();
|
|
1642
1679
|
/** 审批请求回调(通知外部推送到手机) */
|
|
@@ -1741,7 +1778,7 @@ var ApprovalProxy = class _ApprovalProxy {
|
|
|
1741
1778
|
isToolInClaudeSettings(toolName, projectPath) {
|
|
1742
1779
|
const checkPath = (filepath) => {
|
|
1743
1780
|
try {
|
|
1744
|
-
const raw =
|
|
1781
|
+
const raw = import_node_fs2.default.readFileSync(filepath, "utf-8");
|
|
1745
1782
|
const settings = JSON.parse(raw);
|
|
1746
1783
|
const allow = settings?.permissions?.allow ?? [];
|
|
1747
1784
|
return allow.some((entry) => {
|
|
@@ -1755,24 +1792,24 @@ var ApprovalProxy = class _ApprovalProxy {
|
|
|
1755
1792
|
}
|
|
1756
1793
|
};
|
|
1757
1794
|
if (projectPath) {
|
|
1758
|
-
const projectSettingsPath =
|
|
1795
|
+
const projectSettingsPath = import_node_path2.default.join(projectPath, ".claude", "settings.json");
|
|
1759
1796
|
if (checkPath(projectSettingsPath)) return true;
|
|
1760
1797
|
}
|
|
1761
1798
|
return checkPath(this.settingsPath);
|
|
1762
1799
|
}
|
|
1763
1800
|
/** 将工具写入 settings.json permissions.allow(项目级或全局) */
|
|
1764
1801
|
addToClaudeSettings(projectPath, toolName) {
|
|
1765
|
-
const targetPath = projectPath ?
|
|
1802
|
+
const targetPath = projectPath ? import_node_path2.default.join(projectPath, ".claude", "settings.json") : this.settingsPath;
|
|
1766
1803
|
try {
|
|
1767
1804
|
if (projectPath) {
|
|
1768
|
-
const dir =
|
|
1769
|
-
if (!
|
|
1770
|
-
|
|
1805
|
+
const dir = import_node_path2.default.dirname(targetPath);
|
|
1806
|
+
if (!import_node_fs2.default.existsSync(dir)) {
|
|
1807
|
+
import_node_fs2.default.mkdirSync(dir, { recursive: true });
|
|
1771
1808
|
}
|
|
1772
1809
|
}
|
|
1773
1810
|
let settings = {};
|
|
1774
1811
|
try {
|
|
1775
|
-
settings = JSON.parse(
|
|
1812
|
+
settings = JSON.parse(import_node_fs2.default.readFileSync(targetPath, "utf-8"));
|
|
1776
1813
|
} catch {
|
|
1777
1814
|
}
|
|
1778
1815
|
if (!settings.permissions) {
|
|
@@ -1786,7 +1823,7 @@ var ApprovalProxy = class _ApprovalProxy {
|
|
|
1786
1823
|
const entry = `${toolName}(*)`;
|
|
1787
1824
|
if (!allow.includes(entry)) {
|
|
1788
1825
|
allow.push(entry);
|
|
1789
|
-
|
|
1826
|
+
import_node_fs2.default.writeFileSync(targetPath, JSON.stringify(settings, null, 2), "utf-8");
|
|
1790
1827
|
const label = projectPath ? `${projectPath}/.claude/settings.json` : "~/.claude/settings.json";
|
|
1791
1828
|
console.log(`[ApprovalProxy] ${t("approval.alwaysAllowWritten", { entry, label })}`);
|
|
1792
1829
|
}
|
|
@@ -2010,11 +2047,12 @@ var ApprovalProxy = class _ApprovalProxy {
|
|
|
2010
2047
|
|
|
2011
2048
|
// src/mdns/MdnsService.ts
|
|
2012
2049
|
var import_bonjour_service = __toESM(require("bonjour-service"));
|
|
2013
|
-
var
|
|
2050
|
+
var import_node_os4 = require("os");
|
|
2014
2051
|
function getLanAddresses() {
|
|
2015
2052
|
const results = [];
|
|
2016
|
-
for (const [name, addrs] of Object.entries((0,
|
|
2017
|
-
if (name.startsWith("utun") || name
|
|
2053
|
+
for (const [name, addrs] of Object.entries((0, import_node_os4.networkInterfaces)())) {
|
|
2054
|
+
if (name.startsWith("utun") || name === "lo") continue;
|
|
2055
|
+
if (isWindows && (name.startsWith("vEthernet") || name.includes("Loopback"))) continue;
|
|
2018
2056
|
for (const addr of addrs ?? []) {
|
|
2019
2057
|
if (addr.family === "IPv4" && !addr.internal) {
|
|
2020
2058
|
results.push(addr.address);
|
|
@@ -2045,7 +2083,13 @@ var MdnsService = class {
|
|
|
2045
2083
|
return;
|
|
2046
2084
|
}
|
|
2047
2085
|
const lanAddrs = getLanAddresses();
|
|
2048
|
-
|
|
2086
|
+
const onMdnsError = (err) => {
|
|
2087
|
+
console.warn(`[MdnsService] mDNS error (non-fatal): ${err.message}`);
|
|
2088
|
+
this.stop();
|
|
2089
|
+
};
|
|
2090
|
+
const opts = lanAddrs.length > 0 ? { interface: lanAddrs[0] } : {};
|
|
2091
|
+
this.bonjour = new import_bonjour_service.default(opts, onMdnsError);
|
|
2092
|
+
this.bonjour.server?.mdns?.on("error", onMdnsError);
|
|
2049
2093
|
if (lanAddrs.length > 0) {
|
|
2050
2094
|
console.log(`[MdnsService] ${t("mdns.boundInterface", { ip: lanAddrs[0] })}`);
|
|
2051
2095
|
}
|
|
@@ -2110,72 +2154,62 @@ var MdnsService = class {
|
|
|
2110
2154
|
|
|
2111
2155
|
// src/hooks/HookInstaller.ts
|
|
2112
2156
|
var import_promises2 = require("fs/promises");
|
|
2113
|
-
var
|
|
2114
|
-
var
|
|
2115
|
-
var SESSIX_HOOKS_DIR = (0,
|
|
2116
|
-
var HOOK_SCRIPT_PATH = (0,
|
|
2117
|
-
var PERMISSION_ACCEPT_PATH = (0,
|
|
2118
|
-
var CLAUDE_SETTINGS_PATH = (0,
|
|
2119
|
-
var HOOK_COMMAND = "~/.sessix/hooks/approval-hook.
|
|
2120
|
-
var PERMISSION_ACCEPT_COMMAND = "~/.sessix/hooks/permission-accept.
|
|
2121
|
-
var
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
# \u4ECE stdin \u8BFB\u53D6 hook payload
|
|
2130
|
-
PAYLOAD=$(cat)
|
|
2131
|
-
|
|
2132
|
-
# \u83B7\u53D6\u9879\u76EE\u8DEF\u5F84\uFF08\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55\uFF09
|
|
2133
|
-
PROJECT_PATH="$PWD"
|
|
2134
|
-
|
|
2135
|
-
# \u53D1\u9001\u5BA1\u6279\u8BF7\u6C42\u5230 Sessix \u670D\u52A1\u5668\uFF08\u957F\u8F6E\u8BE2\uFF0C\u8D85\u65F6\u65F6\u95F4 > 300s\uFF09
|
|
2136
|
-
RESPONSE=$(curl -s -X POST "http://localhost:3746/hook/approval" \\
|
|
2137
|
-
-H "Content-Type: application/json" \\
|
|
2138
|
-
-d "{\\"sessionId\\": \\"$SESSIX_SESSION_ID\\", \\"projectPath\\": \\"$PROJECT_PATH\\", \\"payload\\": $PAYLOAD}" \\
|
|
2139
|
-
--max-time 320 \\
|
|
2140
|
-
2>/dev/null)
|
|
2141
|
-
|
|
2142
|
-
if [ $? -ne 0 ] || [ -z "$RESPONSE" ]; then
|
|
2143
|
-
# \u5982\u679C Sessix \u670D\u52A1\u5668\u4E0D\u53EF\u7528\uFF0C\u9ED8\u8BA4\u653E\u884C\uFF08exit 0 = \u6279\u51C6\uFF09
|
|
2144
|
-
exit 0
|
|
2145
|
-
fi
|
|
2157
|
+
var import_node_path3 = require("path");
|
|
2158
|
+
var import_node_os5 = require("os");
|
|
2159
|
+
var SESSIX_HOOKS_DIR = (0, import_node_path3.join)((0, import_node_os5.homedir)(), ".sessix", "hooks");
|
|
2160
|
+
var HOOK_SCRIPT_PATH = (0, import_node_path3.join)(SESSIX_HOOKS_DIR, "approval-hook.js");
|
|
2161
|
+
var PERMISSION_ACCEPT_PATH = (0, import_node_path3.join)(SESSIX_HOOKS_DIR, "permission-accept.js");
|
|
2162
|
+
var CLAUDE_SETTINGS_PATH = (0, import_node_path3.join)((0, import_node_os5.homedir)(), ".claude", "settings.json");
|
|
2163
|
+
var HOOK_COMMAND = "node ~/.sessix/hooks/approval-hook.js";
|
|
2164
|
+
var PERMISSION_ACCEPT_COMMAND = "node ~/.sessix/hooks/permission-accept.js";
|
|
2165
|
+
var LEGACY_HOOK_COMMANDS = [
|
|
2166
|
+
"~/.sessix/hooks/approval-hook.sh",
|
|
2167
|
+
"~/.sessix/hooks/permission-accept.sh"
|
|
2168
|
+
];
|
|
2169
|
+
var HOOK_SCRIPT_TEMPLATE = `#!/usr/bin/env node
|
|
2170
|
+
// Sessix Approval Hook
|
|
2171
|
+
// \u4EC5\u5728 Sessix \u7BA1\u7406\u7684\u4F1A\u8BDD\u4E2D\u6FC0\u6D3B
|
|
2146
2172
|
|
|
2147
|
-
|
|
2148
|
-
|
|
2173
|
+
const sessionId = process.env.SESSIX_SESSION_ID
|
|
2174
|
+
if (!sessionId) process.exit(0)
|
|
2149
2175
|
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2176
|
+
let payload = ''
|
|
2177
|
+
process.stdin.on('data', (chunk) => { payload += chunk })
|
|
2178
|
+
process.stdin.on('end', async () => {
|
|
2179
|
+
try {
|
|
2180
|
+
const res = await fetch('http://localhost:3746/hook/approval', {
|
|
2181
|
+
method: 'POST',
|
|
2182
|
+
headers: { 'Content-Type': 'application/json' },
|
|
2183
|
+
body: JSON.stringify({
|
|
2184
|
+
sessionId,
|
|
2185
|
+
projectPath: process.cwd(),
|
|
2186
|
+
payload: JSON.parse(payload),
|
|
2187
|
+
}),
|
|
2188
|
+
signal: AbortSignal.timeout(320000),
|
|
2189
|
+
})
|
|
2190
|
+
const data = await res.json()
|
|
2191
|
+
process.exit(data.decision === 'deny' ? 1 : 0)
|
|
2192
|
+
} catch {
|
|
2193
|
+
// Sessix \u670D\u52A1\u5668\u4E0D\u53EF\u7528\uFF0C\u9ED8\u8BA4\u653E\u884C
|
|
2194
|
+
process.exit(0)
|
|
2195
|
+
}
|
|
2196
|
+
})
|
|
2160
2197
|
`;
|
|
2161
|
-
var PERMISSION_ACCEPT_TEMPLATE = `#!/bin/
|
|
2162
|
-
|
|
2163
|
-
|
|
2198
|
+
var PERMISSION_ACCEPT_TEMPLATE = `#!/usr/bin/env node
|
|
2199
|
+
// Sessix PermissionRequest \u515C\u5E95
|
|
2200
|
+
// \u81EA\u52A8\u63A5\u53D7\u6743\u9650\u8BF7\u6C42\uFF0C\u907F\u514D Sessix \u4F1A\u8BDD\u963B\u585E
|
|
2164
2201
|
|
|
2165
|
-
if
|
|
2166
|
-
exit 0
|
|
2167
|
-
fi
|
|
2202
|
+
if (!process.env.SESSIX_SESSION_ID) process.exit(0)
|
|
2168
2203
|
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
exit 0
|
|
2204
|
+
process.stdout.write('{"decision":"allow"}\\n')
|
|
2205
|
+
process.exit(0)
|
|
2172
2206
|
`;
|
|
2173
2207
|
var HookInstaller = class {
|
|
2174
2208
|
/**
|
|
2175
2209
|
* 安装 hook
|
|
2176
2210
|
*
|
|
2177
2211
|
* 1. 创建 ~/.sessix/hooks/ 目录
|
|
2178
|
-
* 2. 写入 approval-hook.
|
|
2212
|
+
* 2. 写入 approval-hook.js 脚本
|
|
2179
2213
|
* 3. 赋予执行权限
|
|
2180
2214
|
* 4. 更新 Claude Code settings.json 添加 hook 配置
|
|
2181
2215
|
*/
|
|
@@ -2228,6 +2262,10 @@ var HookInstaller = class {
|
|
|
2228
2262
|
async addHookToSettings() {
|
|
2229
2263
|
let settings = await this.readClaudeSettings();
|
|
2230
2264
|
let changed = false;
|
|
2265
|
+
for (const cmd of LEGACY_HOOK_COMMANDS) {
|
|
2266
|
+
this.removeHookCommand(settings, "PreToolUse", cmd);
|
|
2267
|
+
this.removeHookCommand(settings, "PermissionRequest", cmd);
|
|
2268
|
+
}
|
|
2231
2269
|
if (!settings.hooks) {
|
|
2232
2270
|
settings.hooks = {};
|
|
2233
2271
|
}
|
|
@@ -2295,7 +2333,7 @@ var HookInstaller = class {
|
|
|
2295
2333
|
* 写入 Claude Code settings.json
|
|
2296
2334
|
*/
|
|
2297
2335
|
async writeClaudeSettings(settings) {
|
|
2298
|
-
await (0, import_promises2.mkdir)((0,
|
|
2336
|
+
await (0, import_promises2.mkdir)((0, import_node_path3.join)((0, import_node_os5.homedir)(), ".claude"), { recursive: true });
|
|
2299
2337
|
await (0, import_promises2.writeFile)(CLAUDE_SETTINGS_PATH, JSON.stringify(settings, null, 2) + "\n", "utf-8");
|
|
2300
2338
|
}
|
|
2301
2339
|
/**
|
|
@@ -2304,11 +2342,11 @@ var HookInstaller = class {
|
|
|
2304
2342
|
hasHookConfig(settings) {
|
|
2305
2343
|
return this.hasPreToolUseConfig(settings) && this.hasPermissionRequestConfig(settings);
|
|
2306
2344
|
}
|
|
2307
|
-
/** 检查 PreToolUse 中是否有 approval-hook.
|
|
2345
|
+
/** 检查 PreToolUse 中是否有 approval-hook.js */
|
|
2308
2346
|
hasPreToolUseConfig(settings) {
|
|
2309
2347
|
return this.hasHookEntry(settings?.hooks?.PreToolUse, HOOK_COMMAND);
|
|
2310
2348
|
}
|
|
2311
|
-
/** 检查 PermissionRequest 中是否有 permission-accept.
|
|
2349
|
+
/** 检查 PermissionRequest 中是否有 permission-accept.js */
|
|
2312
2350
|
hasPermissionRequestConfig(settings) {
|
|
2313
2351
|
return this.hasHookEntry(settings?.hooks?.PermissionRequest, PERMISSION_ACCEPT_COMMAND);
|
|
2314
2352
|
}
|
|
@@ -2322,7 +2360,7 @@ var HookInstaller = class {
|
|
|
2322
2360
|
};
|
|
2323
2361
|
|
|
2324
2362
|
// src/notification/NotificationService.ts
|
|
2325
|
-
var
|
|
2363
|
+
var import_node_path4 = require("path");
|
|
2326
2364
|
var NotificationService = class {
|
|
2327
2365
|
constructor(sessionManager, expoChannel = null) {
|
|
2328
2366
|
this.sessionManager = sessionManager;
|
|
@@ -2418,7 +2456,7 @@ var NotificationService = class {
|
|
|
2418
2456
|
const dangerLevel = this.getDangerLevel(request.toolName);
|
|
2419
2457
|
const isDangerous = dangerLevel === "danger" || dangerLevel === "write";
|
|
2420
2458
|
const categoryId = isDangerous ? "APPROVAL_DANGEROUS" : "APPROVAL_NORMAL";
|
|
2421
|
-
const projectName = (0,
|
|
2459
|
+
const projectName = (0, import_node_path4.basename)(
|
|
2422
2460
|
this.sessionManager.getActiveSessions().find((s) => s.id === request.sessionId)?.projectPath ?? ""
|
|
2423
2461
|
);
|
|
2424
2462
|
const pushTitle = isDangerous ? `\u26A0\uFE0F ${title}` : title;
|
|
@@ -2474,7 +2512,7 @@ var NotificationService = class {
|
|
|
2474
2512
|
/** 从审批请求中提取操作目标的简短描述 */
|
|
2475
2513
|
extractTarget(request) {
|
|
2476
2514
|
const input = request.toolInput;
|
|
2477
|
-
if (input.file_path) return (0,
|
|
2515
|
+
if (input.file_path) return (0, import_node_path4.basename)(String(input.file_path));
|
|
2478
2516
|
if (input.command) return String(input.command).slice(0, 40);
|
|
2479
2517
|
return request.description.slice(0, 40);
|
|
2480
2518
|
}
|
|
@@ -2577,7 +2615,7 @@ var NotificationService = class {
|
|
|
2577
2615
|
getSessionTitle(sessionId) {
|
|
2578
2616
|
const session = this.sessionManager.getActiveSessions().find((s) => s.id === sessionId);
|
|
2579
2617
|
if (!session) return "Unknown";
|
|
2580
|
-
return session.summary ?? (0,
|
|
2618
|
+
return session.summary ?? (0, import_node_path4.basename)(session.projectPath);
|
|
2581
2619
|
}
|
|
2582
2620
|
/** 获取会话的 YOLO 模式状态 */
|
|
2583
2621
|
getYoloMode(sessionId) {
|
|
@@ -2585,9 +2623,9 @@ var NotificationService = class {
|
|
|
2585
2623
|
}
|
|
2586
2624
|
};
|
|
2587
2625
|
|
|
2588
|
-
// src/notification/
|
|
2589
|
-
var
|
|
2590
|
-
var
|
|
2626
|
+
// src/notification/DesktopNotificationChannel.ts
|
|
2627
|
+
var import_node_child_process3 = require("child_process");
|
|
2628
|
+
var DesktopNotificationChannel = class {
|
|
2591
2629
|
isAvailable() {
|
|
2592
2630
|
return process.platform === "darwin";
|
|
2593
2631
|
}
|
|
@@ -2598,9 +2636,9 @@ var MacNotificationChannel = class {
|
|
|
2598
2636
|
const sound = payload.sound ?? "Ping";
|
|
2599
2637
|
const script = `display notification "${body}" with title "${title}" sound name "${sound}"`;
|
|
2600
2638
|
return new Promise((resolve) => {
|
|
2601
|
-
(0,
|
|
2639
|
+
(0, import_node_child_process3.execFile)("osascript", ["-e", script], (err) => {
|
|
2602
2640
|
if (err) {
|
|
2603
|
-
console.warn("[
|
|
2641
|
+
console.warn("[DesktopNotificationChannel] Send notification failed:", err.message);
|
|
2604
2642
|
}
|
|
2605
2643
|
resolve();
|
|
2606
2644
|
});
|
|
@@ -3226,11 +3264,11 @@ var PairingManager = class {
|
|
|
3226
3264
|
};
|
|
3227
3265
|
|
|
3228
3266
|
// src/auth/AuthManager.ts
|
|
3267
|
+
var import_child_process2 = require("child_process");
|
|
3229
3268
|
var import_child_process3 = require("child_process");
|
|
3230
|
-
var import_child_process4 = require("child_process");
|
|
3231
3269
|
var import_util = require("util");
|
|
3232
3270
|
var import_events2 = require("events");
|
|
3233
|
-
var execFileAsync = (0, import_util.promisify)(
|
|
3271
|
+
var execFileAsync = (0, import_util.promisify)(import_child_process3.execFile);
|
|
3234
3272
|
var CLAUDE_PATH2 = findClaudePath();
|
|
3235
3273
|
var LOGIN_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
3236
3274
|
var AuthManager = class extends import_events2.EventEmitter {
|
|
@@ -3261,7 +3299,7 @@ var AuthManager = class extends import_events2.EventEmitter {
|
|
|
3261
3299
|
}
|
|
3262
3300
|
this.clearLoginTimeout();
|
|
3263
3301
|
this.urlSent = false;
|
|
3264
|
-
const proc = (0,
|
|
3302
|
+
const proc = (0, import_child_process2.spawn)(CLAUDE_PATH2, ["auth", "login"], {
|
|
3265
3303
|
env: { ...process.env, BROWSER: "echo" },
|
|
3266
3304
|
stdio: ["pipe", "pipe", "pipe"]
|
|
3267
3305
|
});
|
|
@@ -3347,15 +3385,31 @@ var AuthManager = class extends import_events2.EventEmitter {
|
|
|
3347
3385
|
var import_promises5 = require("fs/promises");
|
|
3348
3386
|
var WS_PORT = 3745;
|
|
3349
3387
|
var HTTP_PORT = 3746;
|
|
3350
|
-
var execAsync = (0, import_node_util.promisify)(
|
|
3388
|
+
var execAsync = (0, import_node_util.promisify)(import_node_child_process4.exec);
|
|
3351
3389
|
async function killPortProcess(port) {
|
|
3352
3390
|
try {
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3391
|
+
if (isWindows) {
|
|
3392
|
+
const { stdout } = await execAsync(
|
|
3393
|
+
`netstat -ano | findstr :${port} | findstr LISTENING`
|
|
3394
|
+
);
|
|
3395
|
+
const pids = /* @__PURE__ */ new Set();
|
|
3396
|
+
for (const line of stdout.trim().split("\n")) {
|
|
3397
|
+
const parts = line.trim().split(/\s+/);
|
|
3398
|
+
const pid = parts[parts.length - 1];
|
|
3399
|
+
if (pid && /^\d+$/.test(pid) && pid !== "0") pids.add(pid);
|
|
3400
|
+
}
|
|
3401
|
+
for (const pid of pids) {
|
|
3402
|
+
await execAsync(`taskkill /PID ${pid} /F`).catch(() => {
|
|
3403
|
+
});
|
|
3404
|
+
}
|
|
3405
|
+
} else {
|
|
3406
|
+
const { stdout } = await execAsync(`lsof -ti :${port}`);
|
|
3407
|
+
const pids = stdout.trim().split("\n").filter((p) => p && /^\d+$/.test(p));
|
|
3408
|
+
if (pids.length > 0) {
|
|
3409
|
+
await execAsync(`kill -9 ${pids.join(" ")}`);
|
|
3410
|
+
}
|
|
3358
3411
|
}
|
|
3412
|
+
await new Promise((resolve) => setTimeout(resolve, 600));
|
|
3359
3413
|
} catch {
|
|
3360
3414
|
}
|
|
3361
3415
|
}
|
|
@@ -3373,8 +3427,8 @@ async function createWithRetry(label, port, factory) {
|
|
|
3373
3427
|
}
|
|
3374
3428
|
}
|
|
3375
3429
|
async function start(opts = {}) {
|
|
3376
|
-
const configDir = (0,
|
|
3377
|
-
const tokenFile = (0,
|
|
3430
|
+
const configDir = (0, import_node_path5.join)((0, import_node_os6.homedir)(), ".sessix");
|
|
3431
|
+
const tokenFile = (0, import_node_path5.join)(configDir, "token");
|
|
3378
3432
|
let token;
|
|
3379
3433
|
if (opts.token !== void 0) {
|
|
3380
3434
|
token = opts.token;
|
|
@@ -3397,7 +3451,7 @@ async function start(opts = {}) {
|
|
|
3397
3451
|
const expoChannel = new ExpoNotificationChannel();
|
|
3398
3452
|
const notificationService = new NotificationService(sessionManager, expoChannel);
|
|
3399
3453
|
notificationService.addChannel("expo", expoChannel, opts.enableExpoPush !== false);
|
|
3400
|
-
notificationService.addChannel("mac", new
|
|
3454
|
+
notificationService.addChannel("mac", new DesktopNotificationChannel(), opts.enableMacNotification !== false);
|
|
3401
3455
|
if (opts.activityPush) {
|
|
3402
3456
|
try {
|
|
3403
3457
|
const activityChannel = new ActivityPushChannel(opts.activityPush);
|
|
@@ -3424,7 +3478,7 @@ async function start(opts = {}) {
|
|
|
3424
3478
|
let mdnsService = null;
|
|
3425
3479
|
const pairingManager = new PairingManager({
|
|
3426
3480
|
token,
|
|
3427
|
-
serverName: (0,
|
|
3481
|
+
serverName: (0, import_node_os6.hostname)(),
|
|
3428
3482
|
version: "0.2.0",
|
|
3429
3483
|
onStateChange: (state) => mdnsService?.updatePairingState(state)
|
|
3430
3484
|
});
|
|
@@ -3794,12 +3848,17 @@ async function start(opts = {}) {
|
|
|
3794
3848
|
}));
|
|
3795
3849
|
const startMdns = () => {
|
|
3796
3850
|
if (mdnsService) return;
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3851
|
+
try {
|
|
3852
|
+
mdnsService = new MdnsService({
|
|
3853
|
+
wsPort: WS_PORT,
|
|
3854
|
+
httpPort: HTTP_PORT,
|
|
3855
|
+
pairing: pairingManager.state
|
|
3856
|
+
});
|
|
3857
|
+
mdnsService.start();
|
|
3858
|
+
} catch (err) {
|
|
3859
|
+
console.warn(`[Server] mDNS failed to start (non-fatal): ${err.message}`);
|
|
3860
|
+
mdnsService = null;
|
|
3861
|
+
}
|
|
3803
3862
|
};
|
|
3804
3863
|
const stopMdns = () => {
|
|
3805
3864
|
if (!mdnsService) return;
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|