ccpoke 1.7.1 → 1.7.3
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/ccpoke-lock.json +102 -0
- package/dist/agent/claude-code/claude-code-installer.d.ts +7 -21
- package/dist/agent/claude-code/claude-code-installer.js +67 -317
- package/dist/agent/claude-code/claude-code-installer.js.map +1 -1
- package/dist/agent/claude-code/claude-code-provider.d.ts +1 -1
- package/dist/agent/claude-code/claude-code-provider.js +6 -6
- package/dist/agent/claude-code/claude-code-provider.js.map +1 -1
- package/dist/agent/codex/codex-installer.d.ts +7 -12
- package/dist/agent/codex/codex-installer.js +50 -105
- package/dist/agent/codex/codex-installer.js.map +1 -1
- package/dist/agent/codex/codex-provider.d.ts +1 -1
- package/dist/agent/codex/codex-provider.js +6 -6
- package/dist/agent/codex/codex-provider.js.map +1 -1
- package/dist/agent/cursor/cursor-installer.d.ts +7 -13
- package/dist/agent/cursor/cursor-installer.js +53 -109
- package/dist/agent/cursor/cursor-installer.js.map +1 -1
- package/dist/agent/cursor/cursor-provider.d.ts +1 -1
- package/dist/agent/cursor/cursor-provider.js +6 -6
- package/dist/agent/cursor/cursor-provider.js.map +1 -1
- package/dist/agent/gemini-cli/gemini-cli-installer.d.ts +7 -12
- package/dist/agent/gemini-cli/gemini-cli-installer.js +64 -91
- package/dist/agent/gemini-cli/gemini-cli-installer.js.map +1 -1
- package/dist/agent/gemini-cli/gemini-cli-provider.d.ts +1 -1
- package/dist/agent/gemini-cli/gemini-cli-provider.js +6 -6
- package/dist/agent/gemini-cli/gemini-cli-provider.js.map +1 -1
- package/dist/agent/gemini-cli/gemini-cli-settings.d.ts +1 -3
- package/dist/agent/gemini-cli/gemini-cli-settings.js +6 -33
- package/dist/agent/gemini-cli/gemini-cli-settings.js.map +1 -1
- package/dist/agent/opencode/opencode-installer.d.ts +7 -9
- package/dist/agent/opencode/opencode-installer.js +18 -130
- package/dist/agent/opencode/opencode-installer.js.map +1 -1
- package/dist/agent/opencode/opencode-provider.d.ts +1 -1
- package/dist/agent/opencode/opencode-provider.js +6 -6
- package/dist/agent/opencode/opencode-provider.js.map +1 -1
- package/dist/agent/types.d.ts +12 -5
- package/dist/channel/discord/discord-session-command-handler.js +1 -0
- package/dist/channel/discord/discord-session-command-handler.js.map +1 -1
- package/dist/channel/telegram/telegram-channel.d.ts +1 -0
- package/dist/channel/telegram/telegram-channel.js +30 -28
- package/dist/channel/telegram/telegram-channel.js.map +1 -1
- package/dist/commands/setup.js +100 -39
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/update.js +3 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/hooks/hook-env-writer.d.ts +4 -0
- package/dist/hooks/hook-env-writer.js +33 -0
- package/dist/hooks/hook-env-writer.js.map +1 -0
- package/dist/hooks/hook-lock.d.ts +11 -0
- package/dist/hooks/hook-lock.js +40 -0
- package/dist/hooks/hook-lock.js.map +1 -0
- package/dist/hooks/hook-script-copier.d.ts +6 -0
- package/dist/hooks/hook-script-copier.js +49 -0
- package/dist/hooks/hook-script-copier.js.map +1 -0
- package/dist/i18n/locales/en.js +4 -3
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/vi.js +4 -3
- package/dist/i18n/locales/vi.js.map +1 -1
- package/dist/i18n/locales/zh.js +4 -3
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/types.d.ts +3 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/tmux/tmux-scanner.js +45 -17
- package/dist/tmux/tmux-scanner.js.map +1 -1
- package/dist/tmux/tmux-session-resolver.js +8 -8
- package/dist/tmux/tmux-session-resolver.js.map +1 -1
- package/dist/utils/atomic-file.d.ts +3 -0
- package/dist/utils/atomic-file.js +26 -0
- package/dist/utils/atomic-file.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +15 -2
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/paths.d.ts +5 -0
- package/dist/utils/paths.js +5 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/version-check.js +1 -2
- package/dist/utils/version-check.js.map +1 -1
- package/hooks/claude-code-notification.cmd +13 -0
- package/hooks/claude-code-notification.sh +10 -0
- package/hooks/claude-code-permission-request.cmd +13 -0
- package/hooks/claude-code-permission-request.sh +13 -0
- package/hooks/claude-code-pretooluse.cmd +15 -0
- package/hooks/claude-code-pretooluse.sh +13 -0
- package/hooks/claude-code-session-start.cmd +13 -0
- package/hooks/claude-code-session-start.sh +17 -0
- package/hooks/claude-code-stop.cmd +11 -0
- package/hooks/claude-code-stop.sh +8 -0
- package/hooks/codex-notify.cmd +12 -0
- package/hooks/codex-notify.sh +8 -0
- package/hooks/cursor-stop.cmd +12 -0
- package/hooks/cursor-stop.sh +8 -0
- package/hooks/gemini-notification.cmd +12 -0
- package/hooks/gemini-notification.sh +10 -0
- package/hooks/gemini-session-start.cmd +12 -0
- package/hooks/gemini-session-start.sh +10 -0
- package/hooks/gemini-stop.cmd +12 -0
- package/hooks/gemini-stop.sh +10 -0
- package/hooks/lib/common.cmd +12 -0
- package/hooks/lib/common.sh +39 -0
- package/hooks/lib/json-merge.cjs +11 -0
- package/hooks/lib/json-read.cjs +9 -0
- package/hooks/opencode-notify.js +119 -0
- package/package.json +8 -2
- package/dist/utils/windows-hook-script-builder.d.ts +0 -2
- package/dist/utils/windows-hook-script-builder.js +0 -24
- package/dist/utils/windows-hook-script-builder.js.map +0 -1
package/ccpoke-lock.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"claude-code-notification.cmd": {
|
|
3
|
+
"hash": "sha256:ef88b4858794d08b822c5ca934f44a8f277e7169589a1f4dfc99cd6f25f6aad3",
|
|
4
|
+
"version": "1.7.2"
|
|
5
|
+
},
|
|
6
|
+
"claude-code-notification.sh": {
|
|
7
|
+
"hash": "sha256:016e8b15d394ca180e4e876aebfd25fcd68d889d1d7e8cc4c4a6974bc39f807e",
|
|
8
|
+
"version": "1.7.2"
|
|
9
|
+
},
|
|
10
|
+
"claude-code-permission-request.cmd": {
|
|
11
|
+
"hash": "sha256:9487e2021d62b813e578bd9c1810f5fe30c50bfd9f43c79380bc7241ae554683",
|
|
12
|
+
"version": "1.7.2"
|
|
13
|
+
},
|
|
14
|
+
"claude-code-permission-request.sh": {
|
|
15
|
+
"hash": "sha256:e9bd171e2e4394112757cc9b02713373b4e628baf71b813700ace34ee06528e9",
|
|
16
|
+
"version": "1.7.2"
|
|
17
|
+
},
|
|
18
|
+
"claude-code-pretooluse.cmd": {
|
|
19
|
+
"hash": "sha256:2ec9ecaf70b52f1f87e2c0088c4d48ca5c7f28b971f625d3b364f84c95a8959a",
|
|
20
|
+
"version": "1.7.2"
|
|
21
|
+
},
|
|
22
|
+
"claude-code-pretooluse.sh": {
|
|
23
|
+
"hash": "sha256:811b3ed6f121b2464057293dd81e1946f1696259756dc1f043881b4c3e3ec163",
|
|
24
|
+
"version": "1.7.2"
|
|
25
|
+
},
|
|
26
|
+
"claude-code-session-start.cmd": {
|
|
27
|
+
"hash": "sha256:783bba375ed0ca4615b13274d4691f0b60d0faea1d006f32c0fb4d5b51eded81",
|
|
28
|
+
"version": "1.7.2"
|
|
29
|
+
},
|
|
30
|
+
"claude-code-session-start.sh": {
|
|
31
|
+
"hash": "sha256:338d0064bddb47456a0a09bac4de6844fec47a119845e3c135b3cc4b811610cc",
|
|
32
|
+
"version": "1.7.2"
|
|
33
|
+
},
|
|
34
|
+
"claude-code-stop.cmd": {
|
|
35
|
+
"hash": "sha256:35495ab82262c970455311807f0e9029656278b71c0196b1a1a3541fad3406ff",
|
|
36
|
+
"version": "1.7.2"
|
|
37
|
+
},
|
|
38
|
+
"claude-code-stop.sh": {
|
|
39
|
+
"hash": "sha256:031d7181517915b0a363c074c78d0aec5eca0816e58b273811899f33cb39354a",
|
|
40
|
+
"version": "1.7.2"
|
|
41
|
+
},
|
|
42
|
+
"codex-notify.cmd": {
|
|
43
|
+
"hash": "sha256:2b96ce762757fd0d2608188ee66acb7fdebffac891ef272482f558dbea652bb1",
|
|
44
|
+
"version": "1.7.2"
|
|
45
|
+
},
|
|
46
|
+
"codex-notify.sh": {
|
|
47
|
+
"hash": "sha256:86a15daaa63e4953828cdf01f1c6a92efba1b9e3354d0a35a75c9c29f58de51f",
|
|
48
|
+
"version": "1.7.2"
|
|
49
|
+
},
|
|
50
|
+
"cursor-stop.cmd": {
|
|
51
|
+
"hash": "sha256:cc291a6f2ab2b6e8b45bdcc4020b3213db6e1e0c75a8b07a3694b3e6f248cdd4",
|
|
52
|
+
"version": "1.7.2"
|
|
53
|
+
},
|
|
54
|
+
"cursor-stop.sh": {
|
|
55
|
+
"hash": "sha256:4969d0270a55272debc77af239ce9cbc57cb065a8612ca08f22c9e7bcdfe6e5d",
|
|
56
|
+
"version": "1.7.2"
|
|
57
|
+
},
|
|
58
|
+
"gemini-notification.cmd": {
|
|
59
|
+
"hash": "sha256:0ab8e85cacee630e141eb2cc9ea56c24708bc61a482f6bd6212cfbe3e7336c42",
|
|
60
|
+
"version": "1.7.2"
|
|
61
|
+
},
|
|
62
|
+
"gemini-notification.sh": {
|
|
63
|
+
"hash": "sha256:52855f50aa12d1b47ab51a02c743876d2ad7347bcc77123e5bcb16390894fd43",
|
|
64
|
+
"version": "1.7.2"
|
|
65
|
+
},
|
|
66
|
+
"gemini-session-start.cmd": {
|
|
67
|
+
"hash": "sha256:c7238718a0396a6d21c805fc395cbaca9daec70162e61c842cbd375a786b1970",
|
|
68
|
+
"version": "1.7.2"
|
|
69
|
+
},
|
|
70
|
+
"gemini-session-start.sh": {
|
|
71
|
+
"hash": "sha256:1445a2cd5dee986c9f4d47accfa7f080f4c6565d8ea4f5d46f653fdb252cd719",
|
|
72
|
+
"version": "1.7.2"
|
|
73
|
+
},
|
|
74
|
+
"gemini-stop.cmd": {
|
|
75
|
+
"hash": "sha256:337a799ffd0d89357db1343b89e730329fe4f892b15fd9b38e08c22242e2fe90",
|
|
76
|
+
"version": "1.7.2"
|
|
77
|
+
},
|
|
78
|
+
"gemini-stop.sh": {
|
|
79
|
+
"hash": "sha256:4be634fcfac3068f39ad137e922167158ecab04554b5fcfda7132f28bf8b1207",
|
|
80
|
+
"version": "1.7.2"
|
|
81
|
+
},
|
|
82
|
+
"lib/common.cmd": {
|
|
83
|
+
"hash": "sha256:e141ef226e66e205c37c942346aa2847e5a79a5333045ba4c7a844ea45e79d30",
|
|
84
|
+
"version": "1.7.2"
|
|
85
|
+
},
|
|
86
|
+
"lib/common.sh": {
|
|
87
|
+
"hash": "sha256:0900ebf26184cab4dde32b984ad9fbd7d62b6386d740e34f8dc248fe893ecf59",
|
|
88
|
+
"version": "1.7.2"
|
|
89
|
+
},
|
|
90
|
+
"lib/json-merge.cjs": {
|
|
91
|
+
"hash": "sha256:2aca148d358f9500daee42adcbcad5d7d55a689097816727c1113867593e1e36",
|
|
92
|
+
"version": "1.7.2"
|
|
93
|
+
},
|
|
94
|
+
"lib/json-read.cjs": {
|
|
95
|
+
"hash": "sha256:f25e0bb5658f933969e7c3a8352115f76355a02350da416405ad1040d8ed03f3",
|
|
96
|
+
"version": "1.7.2"
|
|
97
|
+
},
|
|
98
|
+
"opencode-notify.js": {
|
|
99
|
+
"hash": "sha256:90f07a262d4c70d1bdc5b442ca539d22d3a9ae64ef3deffd07aba49396cacaf4",
|
|
100
|
+
"version": "1.7.2"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
static uninstall(): void;
|
|
9
|
-
private static writeStopScript;
|
|
10
|
-
private static writeSessionStartScript;
|
|
11
|
-
private static writeNotificationScript;
|
|
12
|
-
private static writePreToolUseScript;
|
|
13
|
-
private static writePermissionRequestScript;
|
|
14
|
-
private static removeStopScript;
|
|
15
|
-
private static removeSessionStartScript;
|
|
16
|
-
private static removeNotificationScript;
|
|
17
|
-
private static removePreToolUseScript;
|
|
18
|
-
private static removePermissionRequestScript;
|
|
19
|
-
private static removeFromSettings;
|
|
20
|
-
private static readSettings;
|
|
21
|
-
}
|
|
1
|
+
import type { IntegrityResult } from "../types.js";
|
|
2
|
+
export declare const claudeCodeInstaller: {
|
|
3
|
+
isInstalled(): boolean;
|
|
4
|
+
verifyIntegrity(): IntegrityResult;
|
|
5
|
+
install(): void;
|
|
6
|
+
uninstall(): void;
|
|
7
|
+
};
|
|
@@ -1,37 +1,32 @@
|
|
|
1
|
-
import { existsSync
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
const
|
|
7
|
-
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { HookScriptCopier } from "../../hooks/hook-script-copier.js";
|
|
3
|
+
import { readJsonFile, writeJsonFile } from "../../utils/atomic-file.js";
|
|
4
|
+
import { CCPOKE_MARKER, isWindows } from "../../utils/constants.js";
|
|
5
|
+
import { paths, toPosixPath } from "../../utils/paths.js";
|
|
6
|
+
const SCRIPT_MAP = [
|
|
7
|
+
{ source: "claude-code-stop", target: () => paths.claudeCodeHookScript },
|
|
8
|
+
{ source: "claude-code-session-start", target: () => paths.claudeCodeSessionStartScript },
|
|
9
|
+
{ source: "claude-code-notification", target: () => paths.claudeCodeNotificationScript },
|
|
10
|
+
{ source: "claude-code-pretooluse", target: () => paths.claudeCodePreToolUseScript },
|
|
11
|
+
{
|
|
12
|
+
source: "claude-code-permission-request",
|
|
13
|
+
target: () => paths.claudeCodePermissionRequestScript,
|
|
14
|
+
},
|
|
15
|
+
];
|
|
8
16
|
function hasCcpokeHook(entries) {
|
|
9
|
-
return entries.some((entry) => entry.hooks?.some((h) => typeof h.command === "string" && h.command.includes(
|
|
17
|
+
return entries.some((entry) => entry.hooks?.some((h) => typeof h.command === "string" && h.command.includes(CCPOKE_MARKER)));
|
|
10
18
|
}
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const match = line.match(VERSION_HEADER_PATTERN) ?? line.match(VERSION_HEADER_PATTERN_WIN);
|
|
17
|
-
if (match)
|
|
18
|
-
return match[1] ?? null;
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return null;
|
|
19
|
+
function copyScripts() {
|
|
20
|
+
HookScriptCopier.copyLib();
|
|
21
|
+
const ext = isWindows() ? ".cmd" : ".sh";
|
|
22
|
+
for (const entry of SCRIPT_MAP) {
|
|
23
|
+
HookScriptCopier.copy(`${entry.source}${ext}`, entry.target());
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return false;
|
|
29
|
-
return readScriptVersion(scriptPath) !== getPackageVersion();
|
|
30
|
-
}
|
|
31
|
-
export class ClaudeCodeInstaller {
|
|
32
|
-
static isInstalled() {
|
|
26
|
+
export const claudeCodeInstaller = {
|
|
27
|
+
isInstalled() {
|
|
33
28
|
try {
|
|
34
|
-
const settings =
|
|
29
|
+
const settings = readJsonFile(paths.claudeSettings, {});
|
|
35
30
|
return (hasCcpokeHook(settings.hooks?.Stop ?? []) &&
|
|
36
31
|
hasCcpokeHook(settings.hooks?.SessionStart ?? []) &&
|
|
37
32
|
hasCcpokeHook(settings.hooks?.Notification ?? []) &&
|
|
@@ -41,52 +36,48 @@ export class ClaudeCodeInstaller {
|
|
|
41
36
|
catch {
|
|
42
37
|
return false;
|
|
43
38
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
39
|
+
},
|
|
40
|
+
verifyIntegrity() {
|
|
46
41
|
const missing = [];
|
|
47
42
|
try {
|
|
48
|
-
const settings =
|
|
49
|
-
if (!hasCcpokeHook(settings.hooks?.Stop ?? []))
|
|
43
|
+
const settings = readJsonFile(paths.claudeSettings, {});
|
|
44
|
+
if (!hasCcpokeHook(settings.hooks?.Stop ?? [])) {
|
|
50
45
|
missing.push("Stop hook in settings");
|
|
51
|
-
|
|
46
|
+
}
|
|
47
|
+
if (!hasCcpokeHook(settings.hooks?.SessionStart ?? [])) {
|
|
52
48
|
missing.push("SessionStart hook in settings");
|
|
53
|
-
|
|
49
|
+
}
|
|
50
|
+
if (!hasCcpokeHook(settings.hooks?.Notification ?? [])) {
|
|
54
51
|
missing.push("Notification hook in settings");
|
|
55
|
-
|
|
52
|
+
}
|
|
53
|
+
if (!hasCcpokeHook(settings.hooks?.PreToolUse ?? [])) {
|
|
56
54
|
missing.push("PreToolUse hook in settings");
|
|
57
|
-
|
|
55
|
+
}
|
|
56
|
+
if (!hasCcpokeHook(settings.hooks?.PermissionRequest ?? [])) {
|
|
58
57
|
missing.push("PermissionRequest hook in settings");
|
|
58
|
+
}
|
|
59
59
|
}
|
|
60
60
|
catch {
|
|
61
61
|
missing.push("settings.json");
|
|
62
62
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (isScriptOutdated(paths.claudeCodeHookScript))
|
|
74
|
-
missing.push("outdated stop script");
|
|
75
|
-
if (isScriptOutdated(paths.claudeCodeSessionStartScript))
|
|
76
|
-
missing.push("outdated session-start script");
|
|
77
|
-
if (isScriptOutdated(paths.claudeCodeNotificationScript))
|
|
78
|
-
missing.push("outdated notification script");
|
|
79
|
-
if (isScriptOutdated(paths.claudeCodePreToolUseScript))
|
|
80
|
-
missing.push("outdated pretooluse script");
|
|
81
|
-
if (isScriptOutdated(paths.claudeCodePermissionRequestScript))
|
|
82
|
-
missing.push("outdated permission-request script");
|
|
63
|
+
const ext = isWindows() ? ".cmd" : ".sh";
|
|
64
|
+
for (const entry of SCRIPT_MAP) {
|
|
65
|
+
const targetPath = entry.target();
|
|
66
|
+
if (!existsSync(targetPath)) {
|
|
67
|
+
missing.push(`${entry.source} script file`);
|
|
68
|
+
}
|
|
69
|
+
else if (HookScriptCopier.needsCopy(`${entry.source}${ext}`, targetPath)) {
|
|
70
|
+
missing.push(`outdated ${entry.source} script`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
83
73
|
return { complete: missing.length === 0, missing };
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const settings =
|
|
88
|
-
if (!settings.hooks)
|
|
74
|
+
},
|
|
75
|
+
install() {
|
|
76
|
+
claudeCodeInstaller.uninstall();
|
|
77
|
+
const settings = readJsonFile(paths.claudeSettings, {});
|
|
78
|
+
if (!settings.hooks) {
|
|
89
79
|
settings.hooks = {};
|
|
80
|
+
}
|
|
90
81
|
settings.hooks.Stop = [
|
|
91
82
|
...(settings.hooks.Stop ?? []),
|
|
92
83
|
{
|
|
@@ -134,252 +125,21 @@ export class ClaudeCodeInstaller {
|
|
|
134
125
|
],
|
|
135
126
|
},
|
|
136
127
|
];
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
ClaudeCodeInstaller.writeNotificationScript(hookPort, hookSecret);
|
|
144
|
-
ClaudeCodeInstaller.writePreToolUseScript(hookPort, hookSecret);
|
|
145
|
-
ClaudeCodeInstaller.writePermissionRequestScript(hookPort, hookSecret);
|
|
146
|
-
}
|
|
147
|
-
static uninstall() {
|
|
148
|
-
ClaudeCodeInstaller.removeFromSettings();
|
|
149
|
-
ClaudeCodeInstaller.removeStopScript();
|
|
150
|
-
ClaudeCodeInstaller.removeSessionStartScript();
|
|
151
|
-
ClaudeCodeInstaller.removeNotificationScript();
|
|
152
|
-
ClaudeCodeInstaller.removePreToolUseScript();
|
|
153
|
-
ClaudeCodeInstaller.removePermissionRequestScript();
|
|
154
|
-
}
|
|
155
|
-
static writeStopScript(hookPort, hookSecret) {
|
|
156
|
-
mkdirSync(paths.hooksDir, { recursive: true });
|
|
157
|
-
const agentParam = `?agent=${AgentName.ClaudeCode}`;
|
|
158
|
-
const version = getPackageVersion();
|
|
159
|
-
if (isWindows()) {
|
|
160
|
-
writeFileSync(paths.claudeCodeHookScript, buildWindowsHookScript(version, hookPort, `${ApiRoute.HookStop}${agentParam}`, hookSecret), { mode: 0o644 });
|
|
128
|
+
writeJsonFile(paths.claudeSettings, settings);
|
|
129
|
+
copyScripts();
|
|
130
|
+
},
|
|
131
|
+
uninstall() {
|
|
132
|
+
const settings = readJsonFile(paths.claudeSettings, {});
|
|
133
|
+
if (!settings.hooks) {
|
|
161
134
|
return;
|
|
162
135
|
}
|
|
163
|
-
const script = `#!/bin/bash
|
|
164
|
-
# ccpoke-version: ${version}
|
|
165
|
-
CCPOKE_HOST="\${CCPOKE_HOST:-localhost}"
|
|
166
|
-
INPUT=$(cat | tr -d '\\n\\r')
|
|
167
|
-
echo "$INPUT" | grep -q '"session_id"' || exit 0
|
|
168
|
-
TMUX_TARGET=""
|
|
169
|
-
if [ -n "$TMUX_PANE" ]; then
|
|
170
|
-
TMUX_TARGET=$(tmux display-message -t "$TMUX_PANE" -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
171
|
-
elif [ -n "$TMUX" ]; then
|
|
172
|
-
TMUX_TARGET=$(tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
173
|
-
fi
|
|
174
|
-
if [ -n "$TMUX_TARGET" ] && echo "$TMUX_TARGET" | grep -qE '^[a-zA-Z0-9_.:/@ -]+$'; then
|
|
175
|
-
INPUT=$(echo "$INPUT" | sed 's/}$/,"tmux_target":"'"$TMUX_TARGET"'"}/')
|
|
176
|
-
fi
|
|
177
|
-
echo "$INPUT" | curl -s -X POST "http://$CCPOKE_HOST:${hookPort}${ApiRoute.HookStop}${agentParam}" \\
|
|
178
|
-
-H "Content-Type: application/json" -H "X-CCPoke-Secret: ${hookSecret}" \\
|
|
179
|
-
--data-binary @- > /dev/null 2>&1 || true
|
|
180
|
-
`;
|
|
181
|
-
writeFileSync(paths.claudeCodeHookScript, script, { mode: 0o700 });
|
|
182
|
-
}
|
|
183
|
-
static writeSessionStartScript(hookPort, hookSecret) {
|
|
184
|
-
mkdirSync(paths.hooksDir, { recursive: true });
|
|
185
|
-
const version = getPackageVersion();
|
|
186
|
-
if (isWindows()) {
|
|
187
|
-
writeFileSync(paths.claudeCodeSessionStartScript, buildWindowsHookScript(version, hookPort, ApiRoute.HookSessionStart, hookSecret), { mode: 0o644 });
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const script = `#!/bin/bash
|
|
191
|
-
# ccpoke-version: ${version}
|
|
192
|
-
CCPOKE_HOST="\${CCPOKE_HOST:-localhost}"
|
|
193
|
-
[ -z "$TMUX" ] && exit 0
|
|
194
|
-
|
|
195
|
-
INPUT=$(cat)
|
|
196
|
-
SESSION_ID=$(echo "$INPUT" | grep -o '"session_id":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
197
|
-
CWD=$(echo "$INPUT" | grep -o '"cwd":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
198
|
-
if [ -n "$TMUX_PANE" ]; then
|
|
199
|
-
TMUX_TARGET=$(tmux display-message -t "$TMUX_PANE" -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null)
|
|
200
|
-
else
|
|
201
|
-
TMUX_TARGET=$(tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}')
|
|
202
|
-
fi
|
|
203
|
-
|
|
204
|
-
[ -z "$SESSION_ID" ] && exit 0
|
|
205
|
-
|
|
206
|
-
json_escape() {
|
|
207
|
-
printf '%s' "$1" | sed 's/\\\\/\\\\\\\\/g; s/"/\\\\"/g; s/\t/\\\\t/g' | tr -d '\\n\\r'
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
PAYLOAD=$(printf '{"session_id":"%s","cwd":"%s","tmux_target":"%s"}' \\
|
|
211
|
-
"$(json_escape "$SESSION_ID")" "$(json_escape "$CWD")" "$(json_escape "$TMUX_TARGET")")
|
|
212
|
-
|
|
213
|
-
curl -s -X POST "http://$CCPOKE_HOST:${hookPort}${ApiRoute.HookSessionStart}" \\
|
|
214
|
-
-H "Content-Type: application/json" \\
|
|
215
|
-
-H "X-CCPoke-Secret: ${hookSecret}" \\
|
|
216
|
-
-d "$PAYLOAD" \\
|
|
217
|
-
--max-time 3 > /dev/null 2>&1 || true
|
|
218
|
-
`;
|
|
219
|
-
writeFileSync(paths.claudeCodeSessionStartScript, script, { mode: 0o700 });
|
|
220
|
-
}
|
|
221
|
-
static writeNotificationScript(hookPort, hookSecret) {
|
|
222
|
-
mkdirSync(paths.hooksDir, { recursive: true });
|
|
223
|
-
const version = getPackageVersion();
|
|
224
|
-
if (isWindows()) {
|
|
225
|
-
writeFileSync(paths.claudeCodeNotificationScript, buildWindowsHookScript(version, hookPort, ApiRoute.HookNotification, hookSecret), { mode: 0o644 });
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
const script = `#!/bin/bash
|
|
229
|
-
# ccpoke-version: ${version}
|
|
230
|
-
CCPOKE_HOST="\${CCPOKE_HOST:-localhost}"
|
|
231
|
-
INPUT=$(cat)
|
|
232
|
-
SESSION_ID=$(echo "$INPUT" | grep -o '"session_id":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
233
|
-
[ -z "$SESSION_ID" ] && exit 0
|
|
234
|
-
|
|
235
|
-
TMUX_TARGET=""
|
|
236
|
-
if [ -n "$TMUX_PANE" ]; then
|
|
237
|
-
TMUX_TARGET=$(tmux display-message -t "$TMUX_PANE" -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
238
|
-
elif [ -n "$TMUX" ]; then
|
|
239
|
-
TMUX_TARGET=$(tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
240
|
-
fi
|
|
241
|
-
|
|
242
|
-
# Inject tmux_target into the raw JSON from Claude Code
|
|
243
|
-
if [ -n "$TMUX_TARGET" ] && echo "$TMUX_TARGET" | grep -qE '^[a-zA-Z0-9_.:/@ -]+$'; then
|
|
244
|
-
PAYLOAD=$(echo "$INPUT" | sed 's/}$/,"tmux_target":"'"$TMUX_TARGET"'"}/')
|
|
245
|
-
else
|
|
246
|
-
PAYLOAD="$INPUT"
|
|
247
|
-
fi
|
|
248
|
-
|
|
249
|
-
echo "$PAYLOAD" | curl -s -X POST "http://$CCPOKE_HOST:${hookPort}${ApiRoute.HookNotification}" \\
|
|
250
|
-
-H "Content-Type: application/json" \\
|
|
251
|
-
-H "X-CCPoke-Secret: ${hookSecret}" \\
|
|
252
|
-
--data-binary @- \\
|
|
253
|
-
--max-time 5 > /dev/null 2>&1 || true
|
|
254
|
-
`;
|
|
255
|
-
writeFileSync(paths.claudeCodeNotificationScript, script, { mode: 0o700 });
|
|
256
|
-
}
|
|
257
|
-
static writePreToolUseScript(hookPort, hookSecret) {
|
|
258
|
-
mkdirSync(paths.hooksDir, { recursive: true });
|
|
259
|
-
const version = getPackageVersion();
|
|
260
|
-
if (isWindows()) {
|
|
261
|
-
writeFileSync(paths.claudeCodePreToolUseScript, buildWindowsHookScript(version, hookPort, ApiRoute.HookAskUserQuestion, hookSecret), { mode: 0o644 });
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
const script = `#!/bin/bash
|
|
265
|
-
# ccpoke-version: ${version}
|
|
266
|
-
CCPOKE_HOST="\${CCPOKE_HOST:-localhost}"
|
|
267
|
-
INPUT=$(cat)
|
|
268
|
-
TOOL_NAME=$(echo "$INPUT" | grep -o '"tool_name":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
269
|
-
[ "$TOOL_NAME" != "AskUserQuestion" ] && exit 0
|
|
270
|
-
|
|
271
|
-
SESSION_ID=$(echo "$INPUT" | grep -o '"session_id":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
272
|
-
[ -z "$SESSION_ID" ] && exit 0
|
|
273
|
-
|
|
274
|
-
TMUX_TARGET=""
|
|
275
|
-
if [ -n "$TMUX_PANE" ]; then
|
|
276
|
-
TMUX_TARGET=$(tmux display-message -t "$TMUX_PANE" -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
277
|
-
elif [ -n "$TMUX" ]; then
|
|
278
|
-
TMUX_TARGET=$(tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
279
|
-
fi
|
|
280
|
-
|
|
281
|
-
if [ -n "$TMUX_TARGET" ] && echo "$TMUX_TARGET" | grep -qE '^[a-zA-Z0-9_.:/@ -]+$'; then
|
|
282
|
-
PAYLOAD=$(echo "$INPUT" | sed 's/}$/,"tmux_target":"'"$TMUX_TARGET"'"}/')
|
|
283
|
-
else
|
|
284
|
-
PAYLOAD="$INPUT"
|
|
285
|
-
fi
|
|
286
|
-
|
|
287
|
-
echo "$PAYLOAD" | curl -s -X POST "http://$CCPOKE_HOST:${hookPort}${ApiRoute.HookAskUserQuestion}" \\
|
|
288
|
-
-H "Content-Type: application/json" \\
|
|
289
|
-
-H "X-CCPoke-Secret: ${hookSecret}" \\
|
|
290
|
-
--data-binary @- \\
|
|
291
|
-
--max-time 3 > /dev/null 2>&1 || true
|
|
292
|
-
`;
|
|
293
|
-
writeFileSync(paths.claudeCodePreToolUseScript, script, { mode: 0o700 });
|
|
294
|
-
}
|
|
295
|
-
static writePermissionRequestScript(hookPort, hookSecret) {
|
|
296
|
-
mkdirSync(paths.hooksDir, { recursive: true });
|
|
297
|
-
const version = getPackageVersion();
|
|
298
|
-
if (isWindows()) {
|
|
299
|
-
writeFileSync(paths.claudeCodePermissionRequestScript, buildWindowsHookScript(version, hookPort, ApiRoute.HookPermissionRequest, hookSecret), { mode: 0o644 });
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
const script = `#!/bin/bash
|
|
303
|
-
# ccpoke-version: ${version}
|
|
304
|
-
CCPOKE_HOST="\${CCPOKE_HOST:-localhost}"
|
|
305
|
-
INPUT=$(cat)
|
|
306
|
-
TOOL_NAME=$(echo "$INPUT" | grep -o '"tool_name":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
307
|
-
[ "$TOOL_NAME" = "AskUserQuestion" ] && exit 0
|
|
308
|
-
|
|
309
|
-
SESSION_ID=$(echo "$INPUT" | grep -o '"session_id":"[^"]*"' | head -1 | cut -d'"' -f4)
|
|
310
|
-
[ -z "$SESSION_ID" ] && exit 0
|
|
311
|
-
|
|
312
|
-
TMUX_TARGET=""
|
|
313
|
-
if [ -n "$TMUX_PANE" ]; then
|
|
314
|
-
TMUX_TARGET=$(tmux display-message -t "$TMUX_PANE" -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
315
|
-
elif [ -n "$TMUX" ]; then
|
|
316
|
-
TMUX_TARGET=$(tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}' 2>/dev/null || echo "")
|
|
317
|
-
fi
|
|
318
|
-
|
|
319
|
-
if [ -n "$TMUX_TARGET" ] && echo "$TMUX_TARGET" | grep -qE '^[a-zA-Z0-9_.:/@ -]+$'; then
|
|
320
|
-
PAYLOAD=$(echo "$INPUT" | sed 's/}$/,"tmux_target":"'"$TMUX_TARGET"'"}/')
|
|
321
|
-
else
|
|
322
|
-
PAYLOAD="$INPUT"
|
|
323
|
-
fi
|
|
324
|
-
|
|
325
|
-
echo "$PAYLOAD" | curl -s -X POST "http://$CCPOKE_HOST:${hookPort}${ApiRoute.HookPermissionRequest}" \\
|
|
326
|
-
-H "Content-Type: application/json" \\
|
|
327
|
-
-H "X-CCPoke-Secret: ${hookSecret}" \\
|
|
328
|
-
--data-binary @- \\
|
|
329
|
-
--max-time 3 > /dev/null 2>&1 || true
|
|
330
|
-
`;
|
|
331
|
-
writeFileSync(paths.claudeCodePermissionRequestScript, script, { mode: 0o700 });
|
|
332
|
-
}
|
|
333
|
-
static removeStopScript() {
|
|
334
|
-
try {
|
|
335
|
-
unlinkSync(paths.claudeCodeHookScript);
|
|
336
|
-
}
|
|
337
|
-
catch {
|
|
338
|
-
/* may not exist */
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
static removeSessionStartScript() {
|
|
342
|
-
try {
|
|
343
|
-
unlinkSync(paths.claudeCodeSessionStartScript);
|
|
344
|
-
}
|
|
345
|
-
catch {
|
|
346
|
-
/* may not exist */
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
static removeNotificationScript() {
|
|
350
|
-
try {
|
|
351
|
-
unlinkSync(paths.claudeCodeNotificationScript);
|
|
352
|
-
}
|
|
353
|
-
catch {
|
|
354
|
-
/* may not exist */
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
static removePreToolUseScript() {
|
|
358
|
-
try {
|
|
359
|
-
unlinkSync(paths.claudeCodePreToolUseScript);
|
|
360
|
-
}
|
|
361
|
-
catch {
|
|
362
|
-
/* may not exist */
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
static removePermissionRequestScript() {
|
|
366
|
-
try {
|
|
367
|
-
unlinkSync(paths.claudeCodePermissionRequestScript);
|
|
368
|
-
}
|
|
369
|
-
catch {
|
|
370
|
-
/* may not exist */
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
static removeFromSettings() {
|
|
374
|
-
const settings = ClaudeCodeInstaller.readSettings();
|
|
375
|
-
if (!settings.hooks)
|
|
376
|
-
return;
|
|
377
136
|
const hooks = settings.hooks;
|
|
378
137
|
for (const hookType of Object.keys(hooks)) {
|
|
379
138
|
const entries = hooks[hookType];
|
|
380
|
-
if (!Array.isArray(entries))
|
|
139
|
+
if (!Array.isArray(entries)) {
|
|
381
140
|
continue;
|
|
382
|
-
|
|
141
|
+
}
|
|
142
|
+
const filtered = entries.filter((entry) => !entry.hooks?.some((h) => typeof h.command === "string" && h.command.includes(CCPOKE_MARKER)));
|
|
383
143
|
if (filtered.length === 0) {
|
|
384
144
|
delete hooks[hookType];
|
|
385
145
|
}
|
|
@@ -390,20 +150,10 @@ echo "$PAYLOAD" | curl -s -X POST "http://$CCPOKE_HOST:${hookPort}${ApiRoute.Hoo
|
|
|
390
150
|
if (Object.keys(hooks).length === 0) {
|
|
391
151
|
delete settings.hooks;
|
|
392
152
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
}
|
|
397
|
-
static readSettings() {
|
|
398
|
-
try {
|
|
399
|
-
return JSON.parse(readFileSync(paths.claudeSettings, "utf-8"));
|
|
153
|
+
writeJsonFile(paths.claudeSettings, settings);
|
|
154
|
+
for (const entry of SCRIPT_MAP) {
|
|
155
|
+
HookScriptCopier.remove(entry.target());
|
|
400
156
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
if (isFileNotFound)
|
|
404
|
-
return {};
|
|
405
|
-
throw err;
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
157
|
+
},
|
|
158
|
+
};
|
|
409
159
|
//# sourceMappingURL=claude-code-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-installer.js","sourceRoot":"","sources":["../../../src/agent/claude-code/claude-code-installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code-installer.js","sourceRoot":"","sources":["../../../src/agent/claude-code/claude-code-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare class ClaudeCodeProvider implements AgentProvider {
|
|
|
6
6
|
readonly submitKeys: string[];
|
|
7
7
|
detect(): boolean;
|
|
8
8
|
isHookInstalled(): boolean;
|
|
9
|
-
installHook(
|
|
9
|
+
installHook(): void;
|
|
10
10
|
uninstallHook(): void;
|
|
11
11
|
verifyIntegrity(): {
|
|
12
12
|
complete: boolean;
|
|
@@ -4,7 +4,7 @@ import { collectGitChanges } from "../../utils/git-collector.js";
|
|
|
4
4
|
import { logError } from "../../utils/log.js";
|
|
5
5
|
import { paths } from "../../utils/paths.js";
|
|
6
6
|
import { AGENT_DISPLAY_NAMES, AgentName, } from "../types.js";
|
|
7
|
-
import {
|
|
7
|
+
import { claudeCodeInstaller } from "./claude-code-installer.js";
|
|
8
8
|
import { extractProjectName, isValidStopEvent, parseTranscript } from "./claude-code-parser.js";
|
|
9
9
|
const TRANSCRIPT_SETTLE_DELAY_MS = 500;
|
|
10
10
|
export class ClaudeCodeProvider {
|
|
@@ -16,16 +16,16 @@ export class ClaudeCodeProvider {
|
|
|
16
16
|
return existsSync(paths.claudeDir);
|
|
17
17
|
}
|
|
18
18
|
isHookInstalled() {
|
|
19
|
-
return
|
|
19
|
+
return claudeCodeInstaller.isInstalled();
|
|
20
20
|
}
|
|
21
|
-
installHook(
|
|
22
|
-
|
|
21
|
+
installHook() {
|
|
22
|
+
claudeCodeInstaller.install();
|
|
23
23
|
}
|
|
24
24
|
uninstallHook() {
|
|
25
|
-
|
|
25
|
+
claudeCodeInstaller.uninstall();
|
|
26
26
|
}
|
|
27
27
|
verifyIntegrity() {
|
|
28
|
-
return
|
|
28
|
+
return claudeCodeInstaller.verifyIntegrity();
|
|
29
29
|
}
|
|
30
30
|
parseEvent(raw) {
|
|
31
31
|
if (!isValidStopEvent(raw)) {
|