clawck 0.1.0 → 0.3.0
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/README.md +223 -151
- package/dist/cli/index.js +926 -30
- package/dist/cli/index.js.map +1 -1
- package/dist/core/clawck.d.ts +16 -3
- package/dist/core/clawck.d.ts.map +1 -1
- package/dist/core/clawck.js +48 -14
- package/dist/core/clawck.js.map +1 -1
- package/dist/core/database.d.ts +4 -4
- package/dist/core/database.d.ts.map +1 -1
- package/dist/core/database.js +85 -104
- package/dist/core/database.js.map +1 -1
- package/dist/core/patterns.d.ts +7 -0
- package/dist/core/patterns.d.ts.map +1 -0
- package/dist/core/patterns.js +36 -0
- package/dist/core/patterns.js.map +1 -0
- package/dist/core/types.d.ts +31 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/webhooks.d.ts +22 -0
- package/dist/core/webhooks.d.ts.map +1 -0
- package/dist/core/webhooks.js +70 -0
- package/dist/core/webhooks.js.map +1 -0
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +7 -1
- package/dist/dashboard/index.js.map +1 -1
- package/dist/hooks/adapters.d.ts +8 -0
- package/dist/hooks/adapters.d.ts.map +1 -0
- package/dist/hooks/adapters.js +138 -0
- package/dist/hooks/adapters.js.map +1 -0
- package/dist/hooks/handler.d.ts +9 -0
- package/dist/hooks/handler.d.ts.map +1 -0
- package/dist/hooks/handler.js +90 -0
- package/dist/hooks/handler.js.map +1 -0
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +23 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/install.d.ts +16 -0
- package/dist/hooks/install.d.ts.map +1 -0
- package/dist/hooks/install.js +239 -0
- package/dist/hooks/install.js.map +1 -0
- package/dist/hooks/session.d.ts +10 -0
- package/dist/hooks/session.d.ts.map +1 -0
- package/dist/hooks/session.js +72 -0
- package/dist/hooks/session.js.map +1 -0
- package/dist/hooks/stdin.d.ts +6 -0
- package/dist/hooks/stdin.d.ts.map +1 -0
- package/dist/hooks/stdin.js +38 -0
- package/dist/hooks/stdin.js.map +1 -0
- package/dist/hooks/types.d.ts +23 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +7 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/reports/html.d.ts +13 -0
- package/dist/reports/html.d.ts.map +1 -0
- package/dist/reports/html.js +321 -0
- package/dist/reports/html.js.map +1 -0
- package/dist/reports/pdf.d.ts +13 -0
- package/dist/reports/pdf.d.ts.map +1 -0
- package/dist/reports/pdf.js +169 -0
- package/dist/reports/pdf.js.map +1 -0
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +18 -2
- package/dist/server/api.js.map +1 -1
- package/dist/server/mcp.d.ts.map +1 -1
- package/dist/server/mcp.js +140 -32
- package/dist/server/mcp.js.map +1 -1
- package/docs/skills/clawck-setup.md +131 -0
- package/docs/skills/clawck-usage.md +148 -0
- package/docs/snippets/claude-md.txt +24 -0
- package/docs/snippets/hooks-claude.json +16 -0
- package/docs/snippets/hooks-cline.txt +10 -0
- package/docs/snippets/hooks-codex.json +16 -0
- package/docs/snippets/hooks-cursor.json +16 -0
- package/docs/snippets/hooks-gemini.json +16 -0
- package/docs/snippets/hooks-windsurf.json +16 -0
- package/docs/snippets/mcp-config.json +7 -0
- package/docs/snippets/openclaw-agent-md.txt +18 -0
- package/docs/snippets/openclaw-heartbeat-md.txt +17 -0
- package/package.json +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAknBrD"}
|
package/dist/dashboard/index.js
CHANGED
|
@@ -5,8 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.getDashboardHTML = getDashboardHTML;
|
|
8
|
+
let cachedHTML = null;
|
|
9
|
+
let cachedPort = null;
|
|
8
10
|
function getDashboardHTML(port) {
|
|
9
|
-
|
|
11
|
+
if (cachedHTML && cachedPort === port)
|
|
12
|
+
return cachedHTML;
|
|
13
|
+
cachedPort = port;
|
|
14
|
+
cachedHTML = `<!DOCTYPE html>
|
|
10
15
|
<html lang="en">
|
|
11
16
|
<head>
|
|
12
17
|
<meta charset="UTF-8">
|
|
@@ -628,5 +633,6 @@ setInterval(loadData, 30000); // Auto-refresh every 30s
|
|
|
628
633
|
</script>
|
|
629
634
|
</body>
|
|
630
635
|
</html>`;
|
|
636
|
+
return cachedHTML;
|
|
631
637
|
}
|
|
632
638
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH,4CAknBC;AArnBD,IAAI,UAAU,GAAkB,IAAI,CAAC;AACrC,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,UAAU,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IACzD,UAAU,GAAG,IAAI,CAAC;IAClB,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAqYiB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwO5B,CAAC;IACP,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⏱️🦀 Clawck — Platform Adapters
|
|
3
|
+
* Normalizes platform-specific hook JSON into a common HookContext.
|
|
4
|
+
*/
|
|
5
|
+
import { HookContext, Platform } from './types';
|
|
6
|
+
export declare function detectPlatform(json: Record<string, unknown>): Platform;
|
|
7
|
+
export declare function normalize(json: Record<string, unknown>, platform?: Platform): HookContext;
|
|
8
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/hooks/adapters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIhD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAQtE;AAyHD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAGzF"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ⏱️🦀 Clawck — Platform Adapters
|
|
4
|
+
* Normalizes platform-specific hook JSON into a common HookContext.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.detectPlatform = detectPlatform;
|
|
8
|
+
exports.normalize = normalize;
|
|
9
|
+
// ─── Platform Detection ────────────────────────────────────
|
|
10
|
+
function detectPlatform(json) {
|
|
11
|
+
if (json.hook_event_name || json.session_id && json.transcript_path)
|
|
12
|
+
return 'claude';
|
|
13
|
+
if (json.GEMINI_SESSION_ID || (json.context && typeof json.context === 'object'))
|
|
14
|
+
return 'gemini';
|
|
15
|
+
if (json.conversation_id && json.generation_id)
|
|
16
|
+
return 'cursor';
|
|
17
|
+
if (json.clineVersion || json.taskId)
|
|
18
|
+
return 'cline';
|
|
19
|
+
if (json.agent_action_name)
|
|
20
|
+
return 'windsurf';
|
|
21
|
+
if (json.turn_id || json.thread_id)
|
|
22
|
+
return 'codex';
|
|
23
|
+
return 'unknown';
|
|
24
|
+
}
|
|
25
|
+
// ─── Claude Code Adapter ───────────────────────────────────
|
|
26
|
+
function normalizeClaude(json) {
|
|
27
|
+
const prompt = json.prompt;
|
|
28
|
+
return {
|
|
29
|
+
platform: 'claude',
|
|
30
|
+
session_id: str(json.session_id) || 'claude-' + Date.now(),
|
|
31
|
+
task: str(prompt?.content) || str(json.prompt) || str(json.hook_event_name) || 'claude-task',
|
|
32
|
+
project: str(json.project_dir) || str(json.cwd),
|
|
33
|
+
agent: 'claude-code',
|
|
34
|
+
model: str(json.model),
|
|
35
|
+
cwd: str(json.cwd),
|
|
36
|
+
raw: json,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// ─── Gemini CLI Adapter ────────────────────────────────────
|
|
40
|
+
function normalizeGemini(json) {
|
|
41
|
+
const ctx = json.context;
|
|
42
|
+
return {
|
|
43
|
+
platform: 'gemini',
|
|
44
|
+
session_id: str(json.GEMINI_SESSION_ID) || str(ctx?.session_id) || 'gemini-' + Date.now(),
|
|
45
|
+
task: str(json.prompt) || str(ctx?.prompt) || 'gemini-task',
|
|
46
|
+
project: str(json.cwd) || str(ctx?.cwd),
|
|
47
|
+
agent: 'gemini-cli',
|
|
48
|
+
model: str(json.model) || str(ctx?.model),
|
|
49
|
+
cwd: str(json.cwd) || str(ctx?.cwd),
|
|
50
|
+
raw: json,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// ─── Cursor Adapter ────────────────────────────────────────
|
|
54
|
+
function normalizeCursor(json) {
|
|
55
|
+
return {
|
|
56
|
+
platform: 'cursor',
|
|
57
|
+
session_id: str(json.conversation_id) || 'cursor-' + Date.now(),
|
|
58
|
+
task: str(json.prompt) || str(json.message) || 'cursor-task',
|
|
59
|
+
project: str(json.workspace_path) || str(json.cwd),
|
|
60
|
+
agent: 'cursor',
|
|
61
|
+
model: str(json.model),
|
|
62
|
+
cwd: str(json.workspace_path) || str(json.cwd),
|
|
63
|
+
raw: json,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// ─── Cline Adapter ─────────────────────────────────────────
|
|
67
|
+
function normalizeCline(json) {
|
|
68
|
+
return {
|
|
69
|
+
platform: 'cline',
|
|
70
|
+
session_id: str(json.taskId) || 'cline-' + Date.now(),
|
|
71
|
+
task: str(json.task) || str(json.message) || 'cline-task',
|
|
72
|
+
project: str(json.workspacePath) || str(json.cwd),
|
|
73
|
+
agent: 'cline',
|
|
74
|
+
model: str(json.model) || str(json.apiProvider),
|
|
75
|
+
cwd: str(json.workspacePath) || str(json.cwd),
|
|
76
|
+
raw: json,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// ─── Windsurf Adapter ──────────────────────────────────────
|
|
80
|
+
function normalizeWindsurf(json) {
|
|
81
|
+
return {
|
|
82
|
+
platform: 'windsurf',
|
|
83
|
+
session_id: str(json.session_id) || str(json.conversation_id) || 'windsurf-' + Date.now(),
|
|
84
|
+
task: str(json.prompt) || str(json.agent_action_name) || 'windsurf-task',
|
|
85
|
+
project: str(json.workspace_path) || str(json.cwd),
|
|
86
|
+
agent: 'windsurf',
|
|
87
|
+
model: str(json.model),
|
|
88
|
+
cwd: str(json.workspace_path) || str(json.cwd),
|
|
89
|
+
raw: json,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// ─── Codex Adapter ─────────────────────────────────────────
|
|
93
|
+
function normalizeCodex(json) {
|
|
94
|
+
return {
|
|
95
|
+
platform: 'codex',
|
|
96
|
+
session_id: str(json.thread_id) || str(json.turn_id) || 'codex-' + Date.now(),
|
|
97
|
+
task: str(json.prompt) || str(json.message) || 'codex-task',
|
|
98
|
+
project: str(json.cwd),
|
|
99
|
+
agent: 'codex',
|
|
100
|
+
model: str(json.model),
|
|
101
|
+
cwd: str(json.cwd),
|
|
102
|
+
raw: json,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// ─── Unknown / Fallback Adapter ────────────────────────────
|
|
106
|
+
function normalizeUnknown(json) {
|
|
107
|
+
return {
|
|
108
|
+
platform: 'unknown',
|
|
109
|
+
session_id: str(json.session_id) || str(json.id) || 'unknown-' + Date.now(),
|
|
110
|
+
task: str(json.task) || str(json.prompt) || str(json.message) || 'unknown-task',
|
|
111
|
+
project: str(json.project) || str(json.cwd),
|
|
112
|
+
agent: str(json.agent) || 'unknown',
|
|
113
|
+
model: str(json.model),
|
|
114
|
+
cwd: str(json.cwd),
|
|
115
|
+
raw: json,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// ─── Public API ────────────────────────────────────────────
|
|
119
|
+
const adapters = {
|
|
120
|
+
claude: normalizeClaude,
|
|
121
|
+
gemini: normalizeGemini,
|
|
122
|
+
cursor: normalizeCursor,
|
|
123
|
+
cline: normalizeCline,
|
|
124
|
+
windsurf: normalizeWindsurf,
|
|
125
|
+
codex: normalizeCodex,
|
|
126
|
+
unknown: normalizeUnknown,
|
|
127
|
+
};
|
|
128
|
+
function normalize(json, platform) {
|
|
129
|
+
const p = platform || detectPlatform(json);
|
|
130
|
+
return adapters[p](json);
|
|
131
|
+
}
|
|
132
|
+
// ─── Helpers ───────────────────────────────────────────────
|
|
133
|
+
function str(val) {
|
|
134
|
+
if (typeof val === 'string' && val.length > 0)
|
|
135
|
+
return val;
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/hooks/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⏱️🦀 Clawck — Hook Handler
|
|
3
|
+
* Core orchestrator: wires platform adapters → clawck core → session files.
|
|
4
|
+
*/
|
|
5
|
+
import { ClawckConfig } from '../core/types';
|
|
6
|
+
import { HookContext } from './types';
|
|
7
|
+
export declare function handleHookStart(config: ClawckConfig, context: HookContext): Promise<void>;
|
|
8
|
+
export declare function handleHookStop(config: ClawckConfig, context: HookContext): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/hooks/handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAiBtC,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/F;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B9F"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ⏱️🦀 Clawck — Hook Handler
|
|
4
|
+
* Core orchestrator: wires platform adapters → clawck core → session files.
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.handleHookStart = handleHookStart;
|
|
11
|
+
exports.handleHookStop = handleHookStop;
|
|
12
|
+
const clawck_1 = require("../core/clawck");
|
|
13
|
+
const session_1 = require("./session");
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
|
+
function logError(dataDir, message) {
|
|
17
|
+
try {
|
|
18
|
+
const logDir = path_1.default.join(dataDir, 'hooks');
|
|
19
|
+
fs_1.default.mkdirSync(logDir, { recursive: true });
|
|
20
|
+
const logPath = path_1.default.join(logDir, 'hook-errors.log');
|
|
21
|
+
const line = `[${new Date().toISOString()}] ${message}\n`;
|
|
22
|
+
fs_1.default.appendFileSync(logPath, line);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// Can't even log — give up silently
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function handleHookStart(config, context) {
|
|
29
|
+
try {
|
|
30
|
+
const clawck = await new clawck_1.Clawck(config).ready();
|
|
31
|
+
try {
|
|
32
|
+
const entry = clawck.start({
|
|
33
|
+
task: context.task,
|
|
34
|
+
project: context.project,
|
|
35
|
+
client: undefined,
|
|
36
|
+
agent: context.agent,
|
|
37
|
+
model: context.model,
|
|
38
|
+
tags: ['hook', context.platform],
|
|
39
|
+
});
|
|
40
|
+
(0, session_1.saveSession)(config.data_dir, context.session_id, {
|
|
41
|
+
entry_id: entry.id,
|
|
42
|
+
platform: context.platform,
|
|
43
|
+
started_at: entry.start,
|
|
44
|
+
session_id: context.session_id,
|
|
45
|
+
});
|
|
46
|
+
process.stderr.write(`clawck: started ${entry.id.slice(0, 8)} (${context.platform})\n`);
|
|
47
|
+
// Opportunistic cleanup of stale sessions
|
|
48
|
+
(0, session_1.cleanStaleSessions)(config.data_dir);
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
clawck.close();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
56
|
+
process.stderr.write(`clawck: hook start error: ${msg}\n`);
|
|
57
|
+
logError(config.data_dir, `start error: ${msg}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async function handleHookStop(config, context) {
|
|
61
|
+
try {
|
|
62
|
+
const session = (0, session_1.loadSession)(config.data_dir, context.session_id);
|
|
63
|
+
if (!session) {
|
|
64
|
+
process.stderr.write(`clawck: no session for ${context.session_id} — skipping stop\n`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const clawck = await new clawck_1.Clawck(config).ready();
|
|
68
|
+
try {
|
|
69
|
+
const entry = clawck.stop({
|
|
70
|
+
id: session.entry_id,
|
|
71
|
+
status: 'completed',
|
|
72
|
+
});
|
|
73
|
+
(0, session_1.clearSession)(config.data_dir, context.session_id);
|
|
74
|
+
if (entry && entry.end) {
|
|
75
|
+
const durationMs = new Date(entry.end).getTime() - new Date(entry.start).getTime();
|
|
76
|
+
const durationMin = (durationMs / 60000).toFixed(1);
|
|
77
|
+
process.stderr.write(`clawck: stopped ${entry.id.slice(0, 8)} (${durationMin}m)\n`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
clawck.close();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
86
|
+
process.stderr.write(`clawck: hook stop error: ${msg}\n`);
|
|
87
|
+
logError(config.data_dir, `stop error: ${msg}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/hooks/handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAqBH,0CAiCC;AAED,wCA+BC;AApFD,2CAAwC;AAExC,uCAAuF;AACvF,4CAAoB;AACpB,gDAAwB;AAExB,SAAS,QAAQ,CAAC,OAAe,EAAE,OAAe;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,YAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC;QAC1D,YAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,MAAoB,EAAE,OAAoB;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACzB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;aACjC,CAAC,CAAC;YAEH,IAAA,qBAAW,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE;gBAC/C,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,UAAU,EAAE,KAAK,CAAC,KAAK;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;YAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;YAExF,0CAA0C;YAC1C,IAAA,4BAAkB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;QAC3D,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,MAAoB,EAAE,OAAoB;IAC7E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,OAAO,CAAC,UAAU,oBAAoB,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;gBACxB,EAAE,EAAE,OAAO,CAAC,QAAQ;gBACpB,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,IAAA,sBAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAElD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACnF,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,MAAM,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;QAC1D,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⏱️🦀 Clawck — Hooks Module
|
|
3
|
+
*/
|
|
4
|
+
export { HookEvent, Platform, HookContext, SessionState } from './types';
|
|
5
|
+
export { readStdin } from './stdin';
|
|
6
|
+
export { detectPlatform, normalize } from './adapters';
|
|
7
|
+
export { saveSession, loadSession, clearSession, cleanStaleSessions } from './session';
|
|
8
|
+
export { handleHookStart, handleHookStop } from './handler';
|
|
9
|
+
export { PLATFORMS, PLATFORM_NAMES, PlatformInstallInfo } from './install';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ⏱️🦀 Clawck — Hooks Module
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PLATFORM_NAMES = exports.PLATFORMS = exports.handleHookStop = exports.handleHookStart = exports.cleanStaleSessions = exports.clearSession = exports.loadSession = exports.saveSession = exports.normalize = exports.detectPlatform = exports.readStdin = void 0;
|
|
7
|
+
var stdin_1 = require("./stdin");
|
|
8
|
+
Object.defineProperty(exports, "readStdin", { enumerable: true, get: function () { return stdin_1.readStdin; } });
|
|
9
|
+
var adapters_1 = require("./adapters");
|
|
10
|
+
Object.defineProperty(exports, "detectPlatform", { enumerable: true, get: function () { return adapters_1.detectPlatform; } });
|
|
11
|
+
Object.defineProperty(exports, "normalize", { enumerable: true, get: function () { return adapters_1.normalize; } });
|
|
12
|
+
var session_1 = require("./session");
|
|
13
|
+
Object.defineProperty(exports, "saveSession", { enumerable: true, get: function () { return session_1.saveSession; } });
|
|
14
|
+
Object.defineProperty(exports, "loadSession", { enumerable: true, get: function () { return session_1.loadSession; } });
|
|
15
|
+
Object.defineProperty(exports, "clearSession", { enumerable: true, get: function () { return session_1.clearSession; } });
|
|
16
|
+
Object.defineProperty(exports, "cleanStaleSessions", { enumerable: true, get: function () { return session_1.cleanStaleSessions; } });
|
|
17
|
+
var handler_1 = require("./handler");
|
|
18
|
+
Object.defineProperty(exports, "handleHookStart", { enumerable: true, get: function () { return handler_1.handleHookStart; } });
|
|
19
|
+
Object.defineProperty(exports, "handleHookStop", { enumerable: true, get: function () { return handler_1.handleHookStop; } });
|
|
20
|
+
var install_1 = require("./install");
|
|
21
|
+
Object.defineProperty(exports, "PLATFORMS", { enumerable: true, get: function () { return install_1.PLATFORMS; } });
|
|
22
|
+
Object.defineProperty(exports, "PLATFORM_NAMES", { enumerable: true, get: function () { return install_1.PLATFORM_NAMES; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAClB,uCAAuD;AAA9C,0GAAA,cAAc,OAAA;AAAE,qGAAA,SAAS,OAAA;AAClC,qCAAuF;AAA9E,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AACnE,qCAA4D;AAAnD,0GAAA,eAAe,OAAA;AAAE,yGAAA,cAAc,OAAA;AACxC,qCAA2E;AAAlE,oGAAA,SAAS,OAAA;AAAE,yGAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⏱️🦀 Clawck — Platform Install Configs
|
|
3
|
+
* Generates platform-specific hook configuration and detects existing installs.
|
|
4
|
+
*/
|
|
5
|
+
import { Platform } from './types';
|
|
6
|
+
export interface PlatformInstallInfo {
|
|
7
|
+
name: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
configPaths: string[];
|
|
10
|
+
snippetFile: string;
|
|
11
|
+
generate: () => string;
|
|
12
|
+
detect: () => boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const PLATFORMS: Record<Exclude<Platform, 'unknown'>, PlatformInstallInfo>;
|
|
15
|
+
export declare const PLATFORM_NAMES: Exclude<Platform, "unknown">[];
|
|
16
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/hooks/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,mBAAmB,CA2M/E,CAAC;AAEF,eAAO,MAAM,cAAc,EAA6B,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ⏱️🦀 Clawck — Platform Install Configs
|
|
4
|
+
* Generates platform-specific hook configuration and detects existing installs.
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.PLATFORM_NAMES = exports.PLATFORMS = void 0;
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const os_1 = __importDefault(require("os"));
|
|
14
|
+
function homeDir() {
|
|
15
|
+
return os_1.default.homedir();
|
|
16
|
+
}
|
|
17
|
+
exports.PLATFORMS = {
|
|
18
|
+
claude: {
|
|
19
|
+
name: 'claude',
|
|
20
|
+
displayName: 'Claude Code',
|
|
21
|
+
configPaths: [
|
|
22
|
+
path_1.default.join(homeDir(), '.claude', 'settings.json'),
|
|
23
|
+
'.claude/settings.json',
|
|
24
|
+
],
|
|
25
|
+
snippetFile: 'hooks-claude.json',
|
|
26
|
+
generate: () => JSON.stringify({
|
|
27
|
+
hooks: {
|
|
28
|
+
UserPromptSubmit: [
|
|
29
|
+
{
|
|
30
|
+
type: "command",
|
|
31
|
+
command: "clawck hook start"
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
Stop: [
|
|
35
|
+
{
|
|
36
|
+
type: "command",
|
|
37
|
+
command: "clawck hook stop"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
}, null, 2),
|
|
42
|
+
detect: () => {
|
|
43
|
+
const paths = [
|
|
44
|
+
path_1.default.join(homeDir(), '.claude', 'settings.json'),
|
|
45
|
+
path_1.default.resolve('.claude/settings.json'),
|
|
46
|
+
];
|
|
47
|
+
return paths.some(p => {
|
|
48
|
+
try {
|
|
49
|
+
const content = fs_1.default.readFileSync(p, 'utf-8');
|
|
50
|
+
return content.includes('clawck hook');
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
gemini: {
|
|
59
|
+
name: 'gemini',
|
|
60
|
+
displayName: 'Gemini CLI',
|
|
61
|
+
configPaths: [
|
|
62
|
+
path_1.default.join(homeDir(), '.gemini', 'settings.json'),
|
|
63
|
+
'.gemini/settings.json',
|
|
64
|
+
],
|
|
65
|
+
snippetFile: 'hooks-gemini.json',
|
|
66
|
+
generate: () => JSON.stringify({
|
|
67
|
+
hooks: {
|
|
68
|
+
BeforeAgent: [
|
|
69
|
+
{
|
|
70
|
+
type: "command",
|
|
71
|
+
command: "clawck hook start"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
AfterAgent: [
|
|
75
|
+
{
|
|
76
|
+
type: "command",
|
|
77
|
+
command: "clawck hook stop"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
}, null, 2),
|
|
82
|
+
detect: () => {
|
|
83
|
+
const paths = [
|
|
84
|
+
path_1.default.join(homeDir(), '.gemini', 'settings.json'),
|
|
85
|
+
path_1.default.resolve('.gemini/settings.json'),
|
|
86
|
+
];
|
|
87
|
+
return paths.some(p => {
|
|
88
|
+
try {
|
|
89
|
+
const content = fs_1.default.readFileSync(p, 'utf-8');
|
|
90
|
+
return content.includes('clawck hook');
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
cursor: {
|
|
99
|
+
name: 'cursor',
|
|
100
|
+
displayName: 'Cursor',
|
|
101
|
+
configPaths: [
|
|
102
|
+
'.cursor/hooks.json',
|
|
103
|
+
],
|
|
104
|
+
snippetFile: 'hooks-cursor.json',
|
|
105
|
+
generate: () => JSON.stringify({
|
|
106
|
+
hooks: {
|
|
107
|
+
pre_user_prompt: [
|
|
108
|
+
{
|
|
109
|
+
type: "command",
|
|
110
|
+
command: "clawck hook start"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
stop: [
|
|
114
|
+
{
|
|
115
|
+
type: "command",
|
|
116
|
+
command: "clawck hook stop"
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
}, null, 2),
|
|
121
|
+
detect: () => {
|
|
122
|
+
try {
|
|
123
|
+
const content = fs_1.default.readFileSync(path_1.default.resolve('.cursor/hooks.json'), 'utf-8');
|
|
124
|
+
return content.includes('clawck hook');
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
cline: {
|
|
132
|
+
name: 'cline',
|
|
133
|
+
displayName: 'Cline',
|
|
134
|
+
configPaths: [
|
|
135
|
+
'.clinerules/hooks/',
|
|
136
|
+
],
|
|
137
|
+
snippetFile: 'hooks-cline.txt',
|
|
138
|
+
generate: () => [
|
|
139
|
+
'# Cline Hook Scripts',
|
|
140
|
+
'# Place these as executable scripts in .clinerules/hooks/',
|
|
141
|
+
'',
|
|
142
|
+
'# --- .clinerules/hooks/TaskStart ---',
|
|
143
|
+
'#!/bin/bash',
|
|
144
|
+
'clawck hook start',
|
|
145
|
+
'',
|
|
146
|
+
'# --- .clinerules/hooks/PostToolUse ---',
|
|
147
|
+
'#!/bin/bash',
|
|
148
|
+
'clawck hook stop',
|
|
149
|
+
].join('\n'),
|
|
150
|
+
detect: () => {
|
|
151
|
+
const dir = path_1.default.resolve('.clinerules/hooks');
|
|
152
|
+
if (!fs_1.default.existsSync(dir))
|
|
153
|
+
return false;
|
|
154
|
+
try {
|
|
155
|
+
const files = fs_1.default.readdirSync(dir);
|
|
156
|
+
return files.some(f => {
|
|
157
|
+
try {
|
|
158
|
+
const content = fs_1.default.readFileSync(path_1.default.join(dir, f), 'utf-8');
|
|
159
|
+
return content.includes('clawck hook');
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
windsurf: {
|
|
172
|
+
name: 'windsurf',
|
|
173
|
+
displayName: 'Windsurf',
|
|
174
|
+
configPaths: [
|
|
175
|
+
'.windsurf/hooks.json',
|
|
176
|
+
],
|
|
177
|
+
snippetFile: 'hooks-windsurf.json',
|
|
178
|
+
generate: () => JSON.stringify({
|
|
179
|
+
hooks: {
|
|
180
|
+
pre_user_prompt: [
|
|
181
|
+
{
|
|
182
|
+
type: "command",
|
|
183
|
+
command: "clawck hook start"
|
|
184
|
+
}
|
|
185
|
+
],
|
|
186
|
+
post_agent: [
|
|
187
|
+
{
|
|
188
|
+
type: "command",
|
|
189
|
+
command: "clawck hook stop"
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
}
|
|
193
|
+
}, null, 2),
|
|
194
|
+
detect: () => {
|
|
195
|
+
try {
|
|
196
|
+
const content = fs_1.default.readFileSync(path_1.default.resolve('.windsurf/hooks.json'), 'utf-8');
|
|
197
|
+
return content.includes('clawck hook');
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
codex: {
|
|
205
|
+
name: 'codex',
|
|
206
|
+
displayName: 'Codex',
|
|
207
|
+
configPaths: [
|
|
208
|
+
'codex.json',
|
|
209
|
+
],
|
|
210
|
+
snippetFile: 'hooks-codex.json',
|
|
211
|
+
generate: () => JSON.stringify({
|
|
212
|
+
hooks: {
|
|
213
|
+
"turn-start": [
|
|
214
|
+
{
|
|
215
|
+
type: "command",
|
|
216
|
+
command: "clawck hook start"
|
|
217
|
+
}
|
|
218
|
+
],
|
|
219
|
+
"agent-turn-complete": [
|
|
220
|
+
{
|
|
221
|
+
type: "command",
|
|
222
|
+
command: "clawck hook stop"
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
}, null, 2),
|
|
227
|
+
detect: () => {
|
|
228
|
+
try {
|
|
229
|
+
const content = fs_1.default.readFileSync(path_1.default.resolve('codex.json'), 'utf-8');
|
|
230
|
+
return content.includes('clawck hook');
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
exports.PLATFORM_NAMES = Object.keys(exports.PLATFORMS);
|
|
239
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/hooks/install.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAYpB,SAAS,OAAO;IACd,OAAO,YAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAEY,QAAA,SAAS,GAA8D;IAClF,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE;YACX,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;YAChD,uBAAuB;SACxB;QACD,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE;gBACL,gBAAgB,EAAE;oBAChB;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,mBAAmB;qBAC7B;iBACF;gBACD,IAAI,EAAE;oBACJ;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,kBAAkB;qBAC5B;iBACF;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,KAAK,GAAG;gBACZ,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;gBAChD,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC;aACtC,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE;YACX,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;YAChD,uBAAuB;SACxB;QACD,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,mBAAmB;qBAC7B;iBACF;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,kBAAkB;qBAC5B;iBACF;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,KAAK,GAAG;gBACZ,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;gBAChD,cAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC;aACtC,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;KACF;IAED,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE;YACX,oBAAoB;SACrB;QACD,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE;gBACL,eAAe,EAAE;oBACf;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,mBAAmB;qBAC7B;iBACF;gBACD,IAAI,EAAE;oBACJ;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,kBAAkB;qBAC5B;iBACF;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,EAAE;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7E,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QAC3B,CAAC;KACF;IAED,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE;YACX,oBAAoB;SACrB;QACD,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC;YACd,sBAAsB;YACtB,2DAA2D;YAC3D,EAAE;YACF,uCAAuC;YACvC,aAAa;YACb,mBAAmB;YACnB,EAAE;YACF,yCAAyC;YACzC,aAAa;YACb,kBAAkB;SACnB,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAClC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBAC5D,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBACzC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QAC3B,CAAC;KACF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE;YACX,sBAAsB;SACvB;QACD,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE;gBACL,eAAe,EAAE;oBACf;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,mBAAmB;qBAC7B;iBACF;gBACD,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,kBAAkB;qBAC5B;iBACF;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,EAAE;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/E,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QAC3B,CAAC;KACF;IAED,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE;YACX,YAAY;SACb;QACD,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE;gBACL,YAAY,EAAE;oBACZ;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,mBAAmB;qBAC7B;iBACF;gBACD,qBAAqB,EAAE;oBACrB;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,kBAAkB;qBAC5B;iBACF;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,MAAM,EAAE,GAAG,EAAE;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QAC3B,CAAC;KACF;CACF,CAAC;AAEW,QAAA,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAS,CAAmC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⏱️🦀 Clawck — Session File Management
|
|
3
|
+
* Persists hook session state as JSON files (not SQLite) to avoid DB lock issues.
|
|
4
|
+
*/
|
|
5
|
+
import { SessionState } from './types';
|
|
6
|
+
export declare function saveSession(dataDir: string, sessionId: string, state: SessionState): void;
|
|
7
|
+
export declare function loadSession(dataDir: string, sessionId: string): SessionState | null;
|
|
8
|
+
export declare function clearSession(dataDir: string, sessionId: string): void;
|
|
9
|
+
export declare function cleanStaleSessions(dataDir: string, maxAgeMs?: number): number;
|
|
10
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/hooks/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAYvC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAIzF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQnF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOrE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,MAAM,CAsB/E"}
|