@kaitranntt/ccs 7.33.0-dev.5 → 7.34.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utils/websearch/hook-config.d.ts.map +1 -1
- package/dist/utils/websearch/hook-config.js +26 -5
- package/dist/utils/websearch/hook-config.js.map +1 -1
- package/dist/utils/websearch/hook-utils.d.ts +18 -0
- package/dist/utils/websearch/hook-utils.d.ts.map +1 -0
- package/dist/utils/websearch/hook-utils.js +52 -0
- package/dist/utils/websearch/hook-utils.js.map +1 -0
- package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -1
- package/dist/utils/websearch/profile-hook-injector.js +15 -9
- package/dist/utils/websearch/profile-hook-injector.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-config.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/hook-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"hook-config.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/hook-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAQD;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkChE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAuH1C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CA0D1C"}
|
|
@@ -37,6 +37,7 @@ const os = __importStar(require("os"));
|
|
|
37
37
|
const ui_1 = require("../ui");
|
|
38
38
|
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
39
39
|
const config_manager_1 = require("../config-manager");
|
|
40
|
+
const hook_utils_1 = require("./hook-utils");
|
|
40
41
|
// Hook file name
|
|
41
42
|
const WEBSEARCH_HOOK = 'websearch-transformer.cjs';
|
|
42
43
|
/**
|
|
@@ -137,10 +138,19 @@ function ensureHookConfig() {
|
|
|
137
138
|
if (hooks?.PreToolUse) {
|
|
138
139
|
const webSearchHookIndex = hooks.PreToolUse.findIndex((h) => {
|
|
139
140
|
const hook = h;
|
|
140
|
-
|
|
141
|
+
if (hook.matcher !== 'WebSearch')
|
|
142
|
+
return false;
|
|
143
|
+
const hookArray = hook.hooks;
|
|
144
|
+
const command = hookArray?.[0]?.command;
|
|
145
|
+
if (typeof command !== 'string')
|
|
146
|
+
return false;
|
|
147
|
+
const normalized = command.replace(/\\/g, '/');
|
|
148
|
+
return normalized.includes('.ccs/hooks/websearch-transformer');
|
|
141
149
|
});
|
|
142
150
|
if (webSearchHookIndex !== -1) {
|
|
143
|
-
// Hook exists -
|
|
151
|
+
// Hook exists - first clean up any duplicates
|
|
152
|
+
const hadDuplicates = (0, hook_utils_1.deduplicateCcsHooks)(settings);
|
|
153
|
+
// Then check if it needs updating
|
|
144
154
|
const existingHook = hooks.PreToolUse[webSearchHookIndex];
|
|
145
155
|
const existingHooks = existingHook.hooks;
|
|
146
156
|
const currentHookConfig = getWebSearchHookConfig();
|
|
@@ -156,10 +166,14 @@ function ensureHookConfig() {
|
|
|
156
166
|
existingHooks[0].timeout = expectedTimeout;
|
|
157
167
|
needsUpdate = true;
|
|
158
168
|
}
|
|
159
|
-
if
|
|
169
|
+
// Combine into single write if either changed
|
|
170
|
+
if (hadDuplicates || needsUpdate) {
|
|
160
171
|
fs.writeFileSync(getClaudeSettingsPath(), JSON.stringify(settings, null, 2), 'utf8');
|
|
161
172
|
if (process.env.CCS_DEBUG) {
|
|
162
|
-
|
|
173
|
+
if (hadDuplicates)
|
|
174
|
+
console.error((0, ui_1.info)('Removed duplicate WebSearch hooks from settings.json'));
|
|
175
|
+
if (needsUpdate)
|
|
176
|
+
console.error((0, ui_1.info)('Updated WebSearch hook config in settings.json'));
|
|
163
177
|
}
|
|
164
178
|
}
|
|
165
179
|
return true;
|
|
@@ -175,6 +189,11 @@ function ensureHookConfig() {
|
|
|
175
189
|
if (!settingsHooks.PreToolUse) {
|
|
176
190
|
settingsHooks.PreToolUse = [];
|
|
177
191
|
}
|
|
192
|
+
// Remove any existing CCS hooks first to prevent duplicates
|
|
193
|
+
settingsHooks.PreToolUse = settingsHooks.PreToolUse.filter((h) => {
|
|
194
|
+
const hook = h;
|
|
195
|
+
return !(0, hook_utils_1.isCcsWebSearchHook)(hook);
|
|
196
|
+
});
|
|
178
197
|
// Add our hook config
|
|
179
198
|
const preToolUseHooks = hookConfig.PreToolUse;
|
|
180
199
|
settingsHooks.PreToolUse.push(...preToolUseHooks);
|
|
@@ -229,7 +248,9 @@ function removeHookConfig() {
|
|
|
229
248
|
if (!hookArray?.[0]?.command)
|
|
230
249
|
return true; // Keep malformed entries
|
|
231
250
|
const command = hookArray[0].command;
|
|
232
|
-
|
|
251
|
+
// Normalize path separators for cross-platform matching (Windows uses backslashes)
|
|
252
|
+
const normalizedCommand = command.replace(/\\/g, '/');
|
|
253
|
+
return !normalizedCommand.includes('.ccs/hooks/websearch-transformer'); // Remove if CCS hook
|
|
233
254
|
});
|
|
234
255
|
if (hooks.PreToolUse.length === originalLength) {
|
|
235
256
|
return true; // Nothing changed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-config.js","sourceRoot":"","sources":["../../../src/utils/websearch/hook-config.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,8BAAmC;AACnC,8EAAwE;AACxE,sDAA8C;
|
|
1
|
+
{"version":3,"file":"hook-config.js","sourceRoot":"","sources":["../../../src/utils/websearch/hook-config.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,8BAAmC;AACnC,8EAAwE;AACxE,sDAA8C;AAC9C,6CAAuE;AAEvE,iBAAiB;AACjB,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,uDAAuD;QACvD,0DAA0D;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IACD,sCAAsC;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAA,0BAAS,GAAE,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAFD,wCAEC;AAED,uEAAuE;AACvE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,0CAAkB,GAAE,CAAC;IAEtC,6CAA6C;IAC7C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjF,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,+EAA+E;IAC/E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC1F,MAAM,WAAW,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IAE7D,OAAO;QACL,UAAU,EAAE;YACV;gBACE,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,SAAS,QAAQ,GAAG;wBAC7B,OAAO,EAAE,WAAW;qBACrB;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAlCD,wDAkCC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,0CAAkB,GAAE,CAAC;QAEtC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wCAAwC;QACxC,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;gBACjE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,gDAAgD,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA8C,CAAC;QACtE,MAAM,gBAAgB,GAAG,WAAW,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,SAAS,gBAAgB,GAAG,CAAC;QAErD,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;YACtB,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAU,EAAE,EAAE;gBACnE,MAAM,IAAI,GAAG,CAA4B,CAAC;gBAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW;oBAAE,OAAO,KAAK,CAAC;gBAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAmD,CAAC;gBAC3E,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBACxC,IAAI,OAAO,OAAO,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAE9C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YAEH,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,8CAA8C;gBAC9C,MAAM,aAAa,GAAG,IAAA,gCAAmB,EAAC,QAAQ,CAAC,CAAC;gBAEpD,kCAAkC;gBAClC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAA4B,CAAC;gBACrF,MAAM,aAAa,GAAG,YAAY,CAAC,KAAuC,CAAC;gBAC3E,MAAM,iBAAiB,GAAG,sBAAsB,EAAE,CAAC;gBACnD,MAAM,aAAa,GAAI,iBAAiB,CAAC,UAA6C,CAAC,CAAC,CAAC;qBACtF,KAAuC,CAAC;gBAC3C,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAiB,CAAC;gBAE3D,IAAI,WAAW,GAAG,KAAK,CAAC;gBAExB,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,eAAe,EAAE,CAAC;oBACpD,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC;oBAC3C,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,eAAe,EAAE,CAAC;oBACpD,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC;oBAC3C,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;oBACjC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBACrF,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;wBAC1B,IAAI,aAAa;4BACf,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,sDAAsD,CAAC,CAAC,CAAC;wBAC9E,IAAI,WAAW;4BAAE,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,gDAAgD,CAAC,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;QAE5C,kCAAkC;QAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAkC,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;YAC9B,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,4DAA4D;QAC5D,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,CAA4B,CAAC;YAC1C,OAAO,CAAC,IAAA,+BAAkB,EAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,eAAe,GAAG,UAAU,CAAC,UAAuB,CAAC;QAC3D,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAElD,oCAAoC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,yBAAyB;QACzB,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAErF,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,uCAAwC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAvHD,4CAuHC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,CAAC,oBAAoB;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,QAAiC,CAAC;QACtC,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC,CAAC,8BAA8B;QAC9C,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA8C,CAAC;QACtE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,CAAC,qBAAqB;QACpC,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/C,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,CAA4B,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAC,CAAC,2BAA2B;YAE1E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAmD,CAAC;YAC3E,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO;gBAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;YAEpE,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAiB,CAAC;YAC/C,mFAAmF;YACnF,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAC,qBAAqB;QAC/F,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,CAAC,kBAAkB;QACjC,CAAC;QAED,8BAA8B;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,UAAU,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAErF,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,2CAA2C,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,IAAA,SAAI,EAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AA1DD,4CA0DC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSearch Hook Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared helper functions for WebSearch hook detection and deduplication.
|
|
5
|
+
*
|
|
6
|
+
* @module utils/websearch/hook-utils
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Check if a hook entry is a CCS WebSearch hook
|
|
10
|
+
* Normalizes path separators for cross-platform matching (Windows uses backslashes)
|
|
11
|
+
*/
|
|
12
|
+
export declare function isCcsWebSearchHook(hook: Record<string, unknown>): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Remove duplicate CCS WebSearch hooks from settings, keeping only the first one
|
|
15
|
+
* Returns true if duplicates were removed
|
|
16
|
+
*/
|
|
17
|
+
export declare function deduplicateCcsHooks(settings: Record<string, unknown>): boolean;
|
|
18
|
+
//# sourceMappingURL=hook-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/hook-utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAYzE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAmB9E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* WebSearch Hook Utilities
|
|
4
|
+
*
|
|
5
|
+
* Shared helper functions for WebSearch hook detection and deduplication.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/websearch/hook-utils
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.deduplicateCcsHooks = exports.isCcsWebSearchHook = void 0;
|
|
11
|
+
/**
|
|
12
|
+
* Check if a hook entry is a CCS WebSearch hook
|
|
13
|
+
* Normalizes path separators for cross-platform matching (Windows uses backslashes)
|
|
14
|
+
*/
|
|
15
|
+
function isCcsWebSearchHook(hook) {
|
|
16
|
+
if (hook.matcher !== 'WebSearch')
|
|
17
|
+
return false;
|
|
18
|
+
const hookArray = hook.hooks;
|
|
19
|
+
if (!hookArray?.[0]?.command)
|
|
20
|
+
return false;
|
|
21
|
+
const command = hookArray[0].command;
|
|
22
|
+
if (typeof command !== 'string')
|
|
23
|
+
return false;
|
|
24
|
+
// Normalize path separators for cross-platform matching
|
|
25
|
+
const normalizedCommand = command.replace(/\\/g, '/');
|
|
26
|
+
return normalizedCommand.includes('.ccs/hooks/websearch-transformer');
|
|
27
|
+
}
|
|
28
|
+
exports.isCcsWebSearchHook = isCcsWebSearchHook;
|
|
29
|
+
/**
|
|
30
|
+
* Remove duplicate CCS WebSearch hooks from settings, keeping only the first one
|
|
31
|
+
* Returns true if duplicates were removed
|
|
32
|
+
*/
|
|
33
|
+
function deduplicateCcsHooks(settings) {
|
|
34
|
+
const hooks = settings.hooks;
|
|
35
|
+
if (!hooks?.PreToolUse)
|
|
36
|
+
return false;
|
|
37
|
+
let foundFirst = false;
|
|
38
|
+
const originalLength = hooks.PreToolUse.length;
|
|
39
|
+
hooks.PreToolUse = hooks.PreToolUse.filter((h) => {
|
|
40
|
+
const hook = h;
|
|
41
|
+
if (!isCcsWebSearchHook(hook))
|
|
42
|
+
return true; // Keep non-CCS hooks
|
|
43
|
+
if (!foundFirst) {
|
|
44
|
+
foundFirst = true;
|
|
45
|
+
return true; // Keep first CCS hook
|
|
46
|
+
}
|
|
47
|
+
return false; // Remove subsequent duplicates
|
|
48
|
+
});
|
|
49
|
+
return hooks.PreToolUse.length < originalLength;
|
|
50
|
+
}
|
|
51
|
+
exports.deduplicateCcsHooks = deduplicateCcsHooks;
|
|
52
|
+
//# sourceMappingURL=hook-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-utils.js","sourceRoot":"","sources":["../../../src/utils/websearch/hook-utils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,IAA6B;IAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAmD,CAAC;IAC3E,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACrC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE9C,wDAAwD;IACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;AACxE,CAAC;AAZD,gDAYC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,QAAiC;IACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAA8C,CAAC;IACtE,IAAI,CAAC,KAAK,EAAE,UAAU;QAAE,OAAO,KAAK,CAAC;IAErC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IAE/C,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,CAA4B,CAAC;QAC1C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,qBAAqB;QAEjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACrC,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,+BAA+B;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC;AAClD,CAAC;AAnBD,kDAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-hook-injector.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"profile-hook-injector.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6DH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA6F/D;AA6DD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAW5C"}
|
|
@@ -39,6 +39,7 @@ const hook_config_1 = require("./hook-config");
|
|
|
39
39
|
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
40
40
|
const hook_config_2 = require("./hook-config");
|
|
41
41
|
const config_manager_1 = require("../config-manager");
|
|
42
|
+
const hook_utils_1 = require("./hook-utils");
|
|
42
43
|
// Valid profile name pattern (alphanumeric, dash, underscore only)
|
|
43
44
|
const VALID_PROFILE_NAME = /^[a-zA-Z0-9_-]+$/;
|
|
44
45
|
/**
|
|
@@ -55,14 +56,7 @@ function hasCcsHook(settings) {
|
|
|
55
56
|
if (!hooks?.PreToolUse)
|
|
56
57
|
return false;
|
|
57
58
|
return hooks.PreToolUse.some((h) => {
|
|
58
|
-
|
|
59
|
-
if (hook.matcher !== 'WebSearch')
|
|
60
|
-
return false;
|
|
61
|
-
const hookArray = hook.hooks;
|
|
62
|
-
if (!hookArray?.[0]?.command)
|
|
63
|
-
return false;
|
|
64
|
-
const command = hookArray[0].command;
|
|
65
|
-
return command.includes('.ccs/hooks/websearch-transformer');
|
|
59
|
+
return (0, hook_utils_1.isCcsWebSearchHook)(h);
|
|
66
60
|
});
|
|
67
61
|
}
|
|
68
62
|
/**
|
|
@@ -137,6 +131,14 @@ function ensureProfileHooks(profileName) {
|
|
|
137
131
|
}
|
|
138
132
|
// Check if CCS hook already present
|
|
139
133
|
if (hasCcsHook(settings)) {
|
|
134
|
+
// Clean up any duplicates that may have accumulated (Windows path bug fix)
|
|
135
|
+
const hadDuplicates = (0, hook_utils_1.deduplicateCcsHooks)(settings);
|
|
136
|
+
if (hadDuplicates) {
|
|
137
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
|
|
138
|
+
if (process.env.CCS_DEBUG) {
|
|
139
|
+
console.error((0, ui_1.info)(`Removed duplicate WebSearch hooks from ${profileName}.settings.json`));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
140
142
|
// Update timeout if needed
|
|
141
143
|
return updateHookTimeoutIfNeeded(settings, settingsPath);
|
|
142
144
|
}
|
|
@@ -189,7 +191,11 @@ function updateHookTimeoutIfNeeded(settings, settingsPath) {
|
|
|
189
191
|
if (!hookArray?.[0]?.command)
|
|
190
192
|
continue;
|
|
191
193
|
const command = hookArray[0].command;
|
|
192
|
-
if (
|
|
194
|
+
if (typeof command !== 'string')
|
|
195
|
+
continue;
|
|
196
|
+
// Normalize path separators for cross-platform matching (Windows uses backslashes)
|
|
197
|
+
const normalizedCommand = command.replace(/\\/g, '/');
|
|
198
|
+
if (!normalizedCommand.includes('.ccs/hooks/websearch-transformer'))
|
|
193
199
|
continue;
|
|
194
200
|
// Found CCS hook - check if needs update
|
|
195
201
|
if (hookArray[0].command !== expectedCommand) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-hook-injector.js","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,8BAAmC;AACnC,+CAAoE;AACpE,8EAAwE;AACxE,+CAAiD;AACjD,sDAA8C;
|
|
1
|
+
{"version":3,"file":"profile-hook-injector.js","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"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"}
|