@contextstream/mcp-server 0.4.57 → 0.4.58
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/hooks/auto-rules.js +65 -38
- package/dist/hooks/runner.js +69 -40
- package/dist/hooks/session-init.js +1036 -1
- package/dist/hooks/user-prompt-submit.js +4 -2
- package/dist/index.js +15130 -14822
- package/dist/test-server.js +1 -1
- package/package.json +1 -1
package/dist/hooks/auto-rules.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
5
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
6
|
-
}) : x)(function(x) {
|
|
7
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
8
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
9
|
-
});
|
|
10
4
|
var __esm = (fn, res) => function __init() {
|
|
11
5
|
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
6
|
};
|
|
@@ -58,20 +52,31 @@ __export(hooks_config_exports, {
|
|
|
58
52
|
writeIndexStatus: () => writeIndexStatus
|
|
59
53
|
});
|
|
60
54
|
import * as fs from "node:fs/promises";
|
|
55
|
+
import * as fsSync from "node:fs";
|
|
61
56
|
import * as path from "node:path";
|
|
62
57
|
import { homedir } from "node:os";
|
|
63
58
|
import { fileURLToPath } from "node:url";
|
|
64
59
|
function getHookCommand(hookName) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
const isWindows = process.platform === "win32";
|
|
61
|
+
if (isWindows) {
|
|
62
|
+
const localAppData = process.env.LOCALAPPDATA;
|
|
63
|
+
if (localAppData) {
|
|
64
|
+
const windowsBinaryPath = path.join(localAppData, "ContextStream", "contextstream-mcp.exe");
|
|
65
|
+
if (fsSync.existsSync(windowsBinaryPath)) {
|
|
66
|
+
return `"${windowsBinaryPath}" hook ${hookName}`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
const unixBinaryPath = "/usr/local/bin/contextstream-mcp";
|
|
71
|
+
if (fsSync.existsSync(unixBinaryPath)) {
|
|
72
|
+
return `${unixBinaryPath} hook ${hookName}`;
|
|
73
|
+
}
|
|
69
74
|
}
|
|
70
75
|
try {
|
|
71
76
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
72
77
|
const indexPath = path.join(__dirname, "index.js");
|
|
73
|
-
if (
|
|
74
|
-
return `node ${indexPath} hook ${hookName}`;
|
|
78
|
+
if (fsSync.existsSync(indexPath)) {
|
|
79
|
+
return `node "${indexPath}" hook ${hookName}`;
|
|
75
80
|
}
|
|
76
81
|
} catch {
|
|
77
82
|
}
|
|
@@ -484,20 +489,43 @@ function getClineHooksDir(scope, projectPath) {
|
|
|
484
489
|
}
|
|
485
490
|
return path.join(projectPath, ".clinerules", "hooks");
|
|
486
491
|
}
|
|
492
|
+
function getHookWrapperScript(hookName) {
|
|
493
|
+
const isWindows = process.platform === "win32";
|
|
494
|
+
const command = getHookCommand(hookName);
|
|
495
|
+
if (isWindows) {
|
|
496
|
+
return {
|
|
497
|
+
content: `@echo off\r
|
|
498
|
+
${command}\r
|
|
499
|
+
`,
|
|
500
|
+
extension: ".cmd"
|
|
501
|
+
};
|
|
502
|
+
} else {
|
|
503
|
+
return {
|
|
504
|
+
content: `#!/bin/bash
|
|
505
|
+
# ContextStream ${hookName} Hook Wrapper for Cline/Roo/Kilo Code
|
|
506
|
+
exec ${command}
|
|
507
|
+
`,
|
|
508
|
+
extension: ""
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
}
|
|
487
512
|
async function installClineHookScripts(options) {
|
|
488
513
|
const hooksDir = getClineHooksDir(options.scope, options.projectPath);
|
|
489
514
|
await fs.mkdir(hooksDir, { recursive: true });
|
|
490
|
-
const
|
|
491
|
-
const
|
|
492
|
-
const
|
|
493
|
-
|
|
494
|
-
|
|
515
|
+
const preToolUseWrapper = getHookWrapperScript("pre-tool-use");
|
|
516
|
+
const userPromptWrapper = getHookWrapperScript("user-prompt-submit");
|
|
517
|
+
const postWriteWrapper = getHookWrapperScript("post-write");
|
|
518
|
+
const preToolUsePath = path.join(hooksDir, `PreToolUse${preToolUseWrapper.extension}`);
|
|
519
|
+
const userPromptPath = path.join(hooksDir, `UserPromptSubmit${userPromptWrapper.extension}`);
|
|
520
|
+
const postToolUsePath = path.join(hooksDir, `PostToolUse${postWriteWrapper.extension}`);
|
|
521
|
+
await fs.writeFile(preToolUsePath, preToolUseWrapper.content, { mode: 493 });
|
|
522
|
+
await fs.writeFile(userPromptPath, userPromptWrapper.content, { mode: 493 });
|
|
495
523
|
const result = {
|
|
496
524
|
preToolUse: preToolUsePath,
|
|
497
525
|
userPromptSubmit: userPromptPath
|
|
498
526
|
};
|
|
499
527
|
if (options.includePostWrite !== false) {
|
|
500
|
-
await fs.writeFile(postToolUsePath,
|
|
528
|
+
await fs.writeFile(postToolUsePath, postWriteWrapper.content, { mode: 493 });
|
|
501
529
|
result.postToolUse = postToolUsePath;
|
|
502
530
|
}
|
|
503
531
|
return result;
|
|
@@ -514,17 +542,20 @@ function getRooCodeHooksDir(scope, projectPath) {
|
|
|
514
542
|
async function installRooCodeHookScripts(options) {
|
|
515
543
|
const hooksDir = getRooCodeHooksDir(options.scope, options.projectPath);
|
|
516
544
|
await fs.mkdir(hooksDir, { recursive: true });
|
|
517
|
-
const
|
|
518
|
-
const
|
|
519
|
-
const
|
|
520
|
-
|
|
521
|
-
|
|
545
|
+
const preToolUseWrapper = getHookWrapperScript("pre-tool-use");
|
|
546
|
+
const userPromptWrapper = getHookWrapperScript("user-prompt-submit");
|
|
547
|
+
const postWriteWrapper = getHookWrapperScript("post-write");
|
|
548
|
+
const preToolUsePath = path.join(hooksDir, `PreToolUse${preToolUseWrapper.extension}`);
|
|
549
|
+
const userPromptPath = path.join(hooksDir, `UserPromptSubmit${userPromptWrapper.extension}`);
|
|
550
|
+
const postToolUsePath = path.join(hooksDir, `PostToolUse${postWriteWrapper.extension}`);
|
|
551
|
+
await fs.writeFile(preToolUsePath, preToolUseWrapper.content, { mode: 493 });
|
|
552
|
+
await fs.writeFile(userPromptPath, userPromptWrapper.content, { mode: 493 });
|
|
522
553
|
const result = {
|
|
523
554
|
preToolUse: preToolUsePath,
|
|
524
555
|
userPromptSubmit: userPromptPath
|
|
525
556
|
};
|
|
526
557
|
if (options.includePostWrite !== false) {
|
|
527
|
-
await fs.writeFile(postToolUsePath,
|
|
558
|
+
await fs.writeFile(postToolUsePath, postWriteWrapper.content, { mode: 493 });
|
|
528
559
|
result.postToolUse = postToolUsePath;
|
|
529
560
|
}
|
|
530
561
|
return result;
|
|
@@ -541,17 +572,20 @@ function getKiloCodeHooksDir(scope, projectPath) {
|
|
|
541
572
|
async function installKiloCodeHookScripts(options) {
|
|
542
573
|
const hooksDir = getKiloCodeHooksDir(options.scope, options.projectPath);
|
|
543
574
|
await fs.mkdir(hooksDir, { recursive: true });
|
|
544
|
-
const
|
|
545
|
-
const
|
|
546
|
-
const
|
|
547
|
-
|
|
548
|
-
|
|
575
|
+
const preToolUseWrapper = getHookWrapperScript("pre-tool-use");
|
|
576
|
+
const userPromptWrapper = getHookWrapperScript("user-prompt-submit");
|
|
577
|
+
const postWriteWrapper = getHookWrapperScript("post-write");
|
|
578
|
+
const preToolUsePath = path.join(hooksDir, `PreToolUse${preToolUseWrapper.extension}`);
|
|
579
|
+
const userPromptPath = path.join(hooksDir, `UserPromptSubmit${userPromptWrapper.extension}`);
|
|
580
|
+
const postToolUsePath = path.join(hooksDir, `PostToolUse${postWriteWrapper.extension}`);
|
|
581
|
+
await fs.writeFile(preToolUsePath, preToolUseWrapper.content, { mode: 493 });
|
|
582
|
+
await fs.writeFile(userPromptPath, userPromptWrapper.content, { mode: 493 });
|
|
549
583
|
const result = {
|
|
550
584
|
preToolUse: preToolUsePath,
|
|
551
585
|
userPromptSubmit: userPromptPath
|
|
552
586
|
};
|
|
553
587
|
if (options.includePostWrite !== false) {
|
|
554
|
-
await fs.writeFile(postToolUsePath,
|
|
588
|
+
await fs.writeFile(postToolUsePath, postWriteWrapper.content, { mode: 493 });
|
|
555
589
|
result.postToolUse = postToolUsePath;
|
|
556
590
|
}
|
|
557
591
|
return result;
|
|
@@ -780,7 +814,7 @@ Set environment variables:
|
|
|
780
814
|
- \`CONTEXTSTREAM_REMINDER_ENABLED=false\` - Disable UserPromptSubmit reminders
|
|
781
815
|
`.trim();
|
|
782
816
|
}
|
|
783
|
-
var PRETOOLUSE_HOOK_SCRIPT, USER_PROMPT_HOOK_SCRIPT, MEDIA_AWARE_HOOK_SCRIPT, PRECOMPACT_HOOK_SCRIPT, CLINE_PRETOOLUSE_HOOK_SCRIPT, CLINE_USER_PROMPT_HOOK_SCRIPT, CLINE_POSTTOOLUSE_HOOK_SCRIPT,
|
|
817
|
+
var PRETOOLUSE_HOOK_SCRIPT, USER_PROMPT_HOOK_SCRIPT, MEDIA_AWARE_HOOK_SCRIPT, PRECOMPACT_HOOK_SCRIPT, CLINE_PRETOOLUSE_HOOK_SCRIPT, CLINE_USER_PROMPT_HOOK_SCRIPT, CLINE_POSTTOOLUSE_HOOK_SCRIPT, CURSOR_PRETOOLUSE_HOOK_SCRIPT, CURSOR_BEFORE_SUBMIT_HOOK_SCRIPT;
|
|
784
818
|
var init_hooks_config = __esm({
|
|
785
819
|
"src/hooks-config.ts"() {
|
|
786
820
|
"use strict";
|
|
@@ -1440,13 +1474,6 @@ esac
|
|
|
1440
1474
|
|
|
1441
1475
|
exit 0
|
|
1442
1476
|
`;
|
|
1443
|
-
CLINE_HOOK_WRAPPER = (hookName) => {
|
|
1444
|
-
const command = getHookCommand(hookName);
|
|
1445
|
-
return `#!/bin/bash
|
|
1446
|
-
# ContextStream ${hookName} Hook Wrapper for Cline/Roo/Kilo Code
|
|
1447
|
-
exec ${command}
|
|
1448
|
-
`;
|
|
1449
|
-
};
|
|
1450
1477
|
CURSOR_PRETOOLUSE_HOOK_SCRIPT = `#!/usr/bin/env python3
|
|
1451
1478
|
"""
|
|
1452
1479
|
ContextStream PreToolUse Hook for Cursor
|
package/dist/hooks/runner.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
5
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
6
|
-
}) : x)(function(x) {
|
|
7
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
8
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
9
|
-
});
|
|
10
4
|
var __esm = (fn, res) => function __init() {
|
|
11
5
|
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
6
|
};
|
|
@@ -451,7 +445,7 @@ var init_version = __esm({
|
|
|
451
445
|
};
|
|
452
446
|
UPGRADE_COMMAND = UPDATE_COMMANDS.npm;
|
|
453
447
|
VERSION = getVersion();
|
|
454
|
-
CACHE_TTL_MS =
|
|
448
|
+
CACHE_TTL_MS = 12 * 60 * 60 * 1e3;
|
|
455
449
|
latestVersionPromise = null;
|
|
456
450
|
}
|
|
457
451
|
});
|
|
@@ -933,7 +927,9 @@ async function runUserPromptSubmitHook() {
|
|
|
933
927
|
const clientName = editorFormat === "claude" ? "claude-code" : editorFormat;
|
|
934
928
|
const saveExchangePromise = lastExchange ? saveLastExchange(lastExchange, cwd, clientName) : Promise.resolve();
|
|
935
929
|
if (editorFormat === "claude") {
|
|
936
|
-
|
|
930
|
+
saveExchangePromise.catch(() => {
|
|
931
|
+
});
|
|
932
|
+
const [ctx, versionNotice] = await Promise.all([fetchSessionContext(), versionNoticePromise]);
|
|
937
933
|
const claudeReminder = buildClaudeReminder(ctx, versionNotice);
|
|
938
934
|
console.log(
|
|
939
935
|
JSON.stringify({
|
|
@@ -1857,20 +1853,31 @@ __export(hooks_config_exports, {
|
|
|
1857
1853
|
writeIndexStatus: () => writeIndexStatus
|
|
1858
1854
|
});
|
|
1859
1855
|
import * as fs5 from "node:fs/promises";
|
|
1856
|
+
import * as fsSync from "node:fs";
|
|
1860
1857
|
import * as path5 from "node:path";
|
|
1861
1858
|
import { homedir as homedir6 } from "node:os";
|
|
1862
1859
|
import { fileURLToPath } from "node:url";
|
|
1863
1860
|
function getHookCommand(hookName2) {
|
|
1864
|
-
const
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1861
|
+
const isWindows = process.platform === "win32";
|
|
1862
|
+
if (isWindows) {
|
|
1863
|
+
const localAppData = process.env.LOCALAPPDATA;
|
|
1864
|
+
if (localAppData) {
|
|
1865
|
+
const windowsBinaryPath = path5.join(localAppData, "ContextStream", "contextstream-mcp.exe");
|
|
1866
|
+
if (fsSync.existsSync(windowsBinaryPath)) {
|
|
1867
|
+
return `"${windowsBinaryPath}" hook ${hookName2}`;
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
} else {
|
|
1871
|
+
const unixBinaryPath = "/usr/local/bin/contextstream-mcp";
|
|
1872
|
+
if (fsSync.existsSync(unixBinaryPath)) {
|
|
1873
|
+
return `${unixBinaryPath} hook ${hookName2}`;
|
|
1874
|
+
}
|
|
1868
1875
|
}
|
|
1869
1876
|
try {
|
|
1870
1877
|
const __dirname = path5.dirname(fileURLToPath(import.meta.url));
|
|
1871
1878
|
const indexPath = path5.join(__dirname, "index.js");
|
|
1872
|
-
if (
|
|
1873
|
-
return `node ${indexPath} hook ${hookName2}`;
|
|
1879
|
+
if (fsSync.existsSync(indexPath)) {
|
|
1880
|
+
return `node "${indexPath}" hook ${hookName2}`;
|
|
1874
1881
|
}
|
|
1875
1882
|
} catch {
|
|
1876
1883
|
}
|
|
@@ -2283,20 +2290,43 @@ function getClineHooksDir(scope, projectPath) {
|
|
|
2283
2290
|
}
|
|
2284
2291
|
return path5.join(projectPath, ".clinerules", "hooks");
|
|
2285
2292
|
}
|
|
2293
|
+
function getHookWrapperScript(hookName2) {
|
|
2294
|
+
const isWindows = process.platform === "win32";
|
|
2295
|
+
const command = getHookCommand(hookName2);
|
|
2296
|
+
if (isWindows) {
|
|
2297
|
+
return {
|
|
2298
|
+
content: `@echo off\r
|
|
2299
|
+
${command}\r
|
|
2300
|
+
`,
|
|
2301
|
+
extension: ".cmd"
|
|
2302
|
+
};
|
|
2303
|
+
} else {
|
|
2304
|
+
return {
|
|
2305
|
+
content: `#!/bin/bash
|
|
2306
|
+
# ContextStream ${hookName2} Hook Wrapper for Cline/Roo/Kilo Code
|
|
2307
|
+
exec ${command}
|
|
2308
|
+
`,
|
|
2309
|
+
extension: ""
|
|
2310
|
+
};
|
|
2311
|
+
}
|
|
2312
|
+
}
|
|
2286
2313
|
async function installClineHookScripts(options) {
|
|
2287
2314
|
const hooksDir = getClineHooksDir(options.scope, options.projectPath);
|
|
2288
2315
|
await fs5.mkdir(hooksDir, { recursive: true });
|
|
2289
|
-
const
|
|
2290
|
-
const
|
|
2291
|
-
const
|
|
2292
|
-
|
|
2293
|
-
|
|
2316
|
+
const preToolUseWrapper = getHookWrapperScript("pre-tool-use");
|
|
2317
|
+
const userPromptWrapper = getHookWrapperScript("user-prompt-submit");
|
|
2318
|
+
const postWriteWrapper = getHookWrapperScript("post-write");
|
|
2319
|
+
const preToolUsePath = path5.join(hooksDir, `PreToolUse${preToolUseWrapper.extension}`);
|
|
2320
|
+
const userPromptPath = path5.join(hooksDir, `UserPromptSubmit${userPromptWrapper.extension}`);
|
|
2321
|
+
const postToolUsePath = path5.join(hooksDir, `PostToolUse${postWriteWrapper.extension}`);
|
|
2322
|
+
await fs5.writeFile(preToolUsePath, preToolUseWrapper.content, { mode: 493 });
|
|
2323
|
+
await fs5.writeFile(userPromptPath, userPromptWrapper.content, { mode: 493 });
|
|
2294
2324
|
const result = {
|
|
2295
2325
|
preToolUse: preToolUsePath,
|
|
2296
2326
|
userPromptSubmit: userPromptPath
|
|
2297
2327
|
};
|
|
2298
2328
|
if (options.includePostWrite !== false) {
|
|
2299
|
-
await fs5.writeFile(postToolUsePath,
|
|
2329
|
+
await fs5.writeFile(postToolUsePath, postWriteWrapper.content, { mode: 493 });
|
|
2300
2330
|
result.postToolUse = postToolUsePath;
|
|
2301
2331
|
}
|
|
2302
2332
|
return result;
|
|
@@ -2313,17 +2343,20 @@ function getRooCodeHooksDir(scope, projectPath) {
|
|
|
2313
2343
|
async function installRooCodeHookScripts(options) {
|
|
2314
2344
|
const hooksDir = getRooCodeHooksDir(options.scope, options.projectPath);
|
|
2315
2345
|
await fs5.mkdir(hooksDir, { recursive: true });
|
|
2316
|
-
const
|
|
2317
|
-
const
|
|
2318
|
-
const
|
|
2319
|
-
|
|
2320
|
-
|
|
2346
|
+
const preToolUseWrapper = getHookWrapperScript("pre-tool-use");
|
|
2347
|
+
const userPromptWrapper = getHookWrapperScript("user-prompt-submit");
|
|
2348
|
+
const postWriteWrapper = getHookWrapperScript("post-write");
|
|
2349
|
+
const preToolUsePath = path5.join(hooksDir, `PreToolUse${preToolUseWrapper.extension}`);
|
|
2350
|
+
const userPromptPath = path5.join(hooksDir, `UserPromptSubmit${userPromptWrapper.extension}`);
|
|
2351
|
+
const postToolUsePath = path5.join(hooksDir, `PostToolUse${postWriteWrapper.extension}`);
|
|
2352
|
+
await fs5.writeFile(preToolUsePath, preToolUseWrapper.content, { mode: 493 });
|
|
2353
|
+
await fs5.writeFile(userPromptPath, userPromptWrapper.content, { mode: 493 });
|
|
2321
2354
|
const result = {
|
|
2322
2355
|
preToolUse: preToolUsePath,
|
|
2323
2356
|
userPromptSubmit: userPromptPath
|
|
2324
2357
|
};
|
|
2325
2358
|
if (options.includePostWrite !== false) {
|
|
2326
|
-
await fs5.writeFile(postToolUsePath,
|
|
2359
|
+
await fs5.writeFile(postToolUsePath, postWriteWrapper.content, { mode: 493 });
|
|
2327
2360
|
result.postToolUse = postToolUsePath;
|
|
2328
2361
|
}
|
|
2329
2362
|
return result;
|
|
@@ -2340,17 +2373,20 @@ function getKiloCodeHooksDir(scope, projectPath) {
|
|
|
2340
2373
|
async function installKiloCodeHookScripts(options) {
|
|
2341
2374
|
const hooksDir = getKiloCodeHooksDir(options.scope, options.projectPath);
|
|
2342
2375
|
await fs5.mkdir(hooksDir, { recursive: true });
|
|
2343
|
-
const
|
|
2344
|
-
const
|
|
2345
|
-
const
|
|
2346
|
-
|
|
2347
|
-
|
|
2376
|
+
const preToolUseWrapper = getHookWrapperScript("pre-tool-use");
|
|
2377
|
+
const userPromptWrapper = getHookWrapperScript("user-prompt-submit");
|
|
2378
|
+
const postWriteWrapper = getHookWrapperScript("post-write");
|
|
2379
|
+
const preToolUsePath = path5.join(hooksDir, `PreToolUse${preToolUseWrapper.extension}`);
|
|
2380
|
+
const userPromptPath = path5.join(hooksDir, `UserPromptSubmit${userPromptWrapper.extension}`);
|
|
2381
|
+
const postToolUsePath = path5.join(hooksDir, `PostToolUse${postWriteWrapper.extension}`);
|
|
2382
|
+
await fs5.writeFile(preToolUsePath, preToolUseWrapper.content, { mode: 493 });
|
|
2383
|
+
await fs5.writeFile(userPromptPath, userPromptWrapper.content, { mode: 493 });
|
|
2348
2384
|
const result = {
|
|
2349
2385
|
preToolUse: preToolUsePath,
|
|
2350
2386
|
userPromptSubmit: userPromptPath
|
|
2351
2387
|
};
|
|
2352
2388
|
if (options.includePostWrite !== false) {
|
|
2353
|
-
await fs5.writeFile(postToolUsePath,
|
|
2389
|
+
await fs5.writeFile(postToolUsePath, postWriteWrapper.content, { mode: 493 });
|
|
2354
2390
|
result.postToolUse = postToolUsePath;
|
|
2355
2391
|
}
|
|
2356
2392
|
return result;
|
|
@@ -2579,7 +2615,7 @@ Set environment variables:
|
|
|
2579
2615
|
- \`CONTEXTSTREAM_REMINDER_ENABLED=false\` - Disable UserPromptSubmit reminders
|
|
2580
2616
|
`.trim();
|
|
2581
2617
|
}
|
|
2582
|
-
var PRETOOLUSE_HOOK_SCRIPT, USER_PROMPT_HOOK_SCRIPT, MEDIA_AWARE_HOOK_SCRIPT, PRECOMPACT_HOOK_SCRIPT, CLINE_PRETOOLUSE_HOOK_SCRIPT, CLINE_USER_PROMPT_HOOK_SCRIPT, CLINE_POSTTOOLUSE_HOOK_SCRIPT,
|
|
2618
|
+
var PRETOOLUSE_HOOK_SCRIPT, USER_PROMPT_HOOK_SCRIPT, MEDIA_AWARE_HOOK_SCRIPT, PRECOMPACT_HOOK_SCRIPT, CLINE_PRETOOLUSE_HOOK_SCRIPT, CLINE_USER_PROMPT_HOOK_SCRIPT, CLINE_POSTTOOLUSE_HOOK_SCRIPT, CURSOR_PRETOOLUSE_HOOK_SCRIPT, CURSOR_BEFORE_SUBMIT_HOOK_SCRIPT;
|
|
2583
2619
|
var init_hooks_config = __esm({
|
|
2584
2620
|
"src/hooks-config.ts"() {
|
|
2585
2621
|
"use strict";
|
|
@@ -3239,13 +3275,6 @@ esac
|
|
|
3239
3275
|
|
|
3240
3276
|
exit 0
|
|
3241
3277
|
`;
|
|
3242
|
-
CLINE_HOOK_WRAPPER = (hookName2) => {
|
|
3243
|
-
const command = getHookCommand(hookName2);
|
|
3244
|
-
return `#!/bin/bash
|
|
3245
|
-
# ContextStream ${hookName2} Hook Wrapper for Cline/Roo/Kilo Code
|
|
3246
|
-
exec ${command}
|
|
3247
|
-
`;
|
|
3248
|
-
};
|
|
3249
3278
|
CURSOR_PRETOOLUSE_HOOK_SCRIPT = `#!/usr/bin/env python3
|
|
3250
3279
|
"""
|
|
3251
3280
|
ContextStream PreToolUse Hook for Cursor
|