@jonnyhoo/ccs 1.1.1 → 1.1.2

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.
Files changed (179) hide show
  1. package/.claude/skills/ccs-delegation/SKILL.md +7 -7
  2. package/.claude/skills/ccs-delegation/references/troubleshooting.md +20 -20
  3. package/config/base-codex.settings.json +3 -3
  4. package/dist/api/services/profile-writer.d.ts +1 -1
  5. package/dist/api/services/profile-writer.d.ts.map +1 -1
  6. package/dist/api/services/profile-writer.js +8 -9
  7. package/dist/api/services/profile-writer.js.map +1 -1
  8. package/dist/auth/profile-detector.d.ts +3 -1
  9. package/dist/auth/profile-detector.d.ts.map +1 -1
  10. package/dist/auth/profile-detector.js +16 -17
  11. package/dist/auth/profile-detector.js.map +1 -1
  12. package/dist/ccs.js +303 -44
  13. package/dist/ccs.js.map +1 -1
  14. package/dist/cliproxy/anthropic-to-openai-proxy.d.ts +15 -1
  15. package/dist/cliproxy/anthropic-to-openai-proxy.d.ts.map +1 -1
  16. package/dist/cliproxy/anthropic-to-openai-proxy.js +1100 -296
  17. package/dist/cliproxy/anthropic-to-openai-proxy.js.map +1 -1
  18. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  19. package/dist/cliproxy/cliproxy-executor.js +58 -44
  20. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  21. package/dist/cliproxy/config-generator.d.ts.map +1 -1
  22. package/dist/cliproxy/config-generator.js +16 -2
  23. package/dist/cliproxy/config-generator.js.map +1 -1
  24. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  25. package/dist/cliproxy/model-catalog.js +12 -1
  26. package/dist/cliproxy/model-catalog.js.map +1 -1
  27. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  28. package/dist/cliproxy/services/variant-settings.js +0 -5
  29. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  30. package/dist/cliproxy/tool-name-sanitizer.d.ts +17 -21
  31. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +1 -1
  32. package/dist/cliproxy/tool-name-sanitizer.js +46 -33
  33. package/dist/cliproxy/tool-name-sanitizer.js.map +1 -1
  34. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
  35. package/dist/cliproxy/tool-sanitization-proxy.js +18 -1
  36. package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
  37. package/dist/commands/api-command.d.ts.map +1 -1
  38. package/dist/commands/api-command.js +21 -1
  39. package/dist/commands/api-command.js.map +1 -1
  40. package/dist/commands/help-command.d.ts.map +1 -1
  41. package/dist/commands/help-command.js +15 -107
  42. package/dist/commands/help-command.js.map +1 -1
  43. package/dist/commands/index.d.ts +0 -1
  44. package/dist/commands/index.d.ts.map +1 -1
  45. package/dist/commands/index.js +1 -3
  46. package/dist/commands/index.js.map +1 -1
  47. package/dist/commands/install-command.d.ts.map +1 -1
  48. package/dist/commands/install-command.js +2 -9
  49. package/dist/commands/install-command.js.map +1 -1
  50. package/dist/commands/router.js +1 -1
  51. package/dist/commands/router.js.map +1 -1
  52. package/dist/config/unified-config-loader.d.ts +0 -32
  53. package/dist/config/unified-config-loader.d.ts.map +1 -1
  54. package/dist/config/unified-config-loader.js +6 -95
  55. package/dist/config/unified-config-loader.js.map +1 -1
  56. package/dist/config/unified-config-types.d.ts +3 -75
  57. package/dist/config/unified-config-types.d.ts.map +1 -1
  58. package/dist/config/unified-config-types.js +0 -20
  59. package/dist/config/unified-config-types.js.map +1 -1
  60. package/dist/delegation/background-monitor.d.ts +80 -0
  61. package/dist/delegation/background-monitor.d.ts.map +1 -0
  62. package/dist/delegation/background-monitor.js +295 -0
  63. package/dist/delegation/background-monitor.js.map +1 -0
  64. package/dist/delegation/delegation-handler.d.ts +2 -1
  65. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  66. package/dist/delegation/delegation-handler.js +48 -30
  67. package/dist/delegation/delegation-handler.js.map +1 -1
  68. package/dist/delegation/executor/types.d.ts +2 -0
  69. package/dist/delegation/executor/types.d.ts.map +1 -1
  70. package/dist/delegation/headless-executor.d.ts +3 -0
  71. package/dist/delegation/headless-executor.d.ts.map +1 -1
  72. package/dist/delegation/headless-executor.js +162 -14
  73. package/dist/delegation/headless-executor.js.map +1 -1
  74. package/dist/hello.d.ts +7 -0
  75. package/dist/hello.d.ts.map +1 -0
  76. package/dist/hello.js +13 -0
  77. package/dist/hello.js.map +1 -0
  78. package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
  79. package/dist/management/checks/image-analysis-check.js.map +1 -1
  80. package/dist/router/index.d.ts +3 -3
  81. package/dist/router/index.d.ts.map +1 -1
  82. package/dist/router/index.js +1 -1
  83. package/dist/router/index.js.map +1 -1
  84. package/dist/router/scenario-router.d.ts +2 -8
  85. package/dist/router/scenario-router.d.ts.map +1 -1
  86. package/dist/router/scenario-router.js +3 -22
  87. package/dist/router/scenario-router.js.map +1 -1
  88. package/dist/router/scenario-routing-proxy.d.ts.map +1 -1
  89. package/dist/router/scenario-routing-proxy.js +19 -4
  90. package/dist/router/scenario-routing-proxy.js.map +1 -1
  91. package/dist/router/settings-routing-executor.d.ts.map +1 -1
  92. package/dist/router/settings-routing-executor.js.map +1 -1
  93. package/dist/router/types.d.ts +1 -1
  94. package/dist/router/types.d.ts.map +1 -1
  95. package/dist/utils/shell-executor.d.ts.map +1 -1
  96. package/dist/utils/shell-executor.js +1 -6
  97. package/dist/utils/shell-executor.js.map +1 -1
  98. package/dist/web-server/health/index.d.ts +0 -1
  99. package/dist/web-server/health/index.d.ts.map +1 -1
  100. package/dist/web-server/health/index.js +1 -4
  101. package/dist/web-server/health/index.js.map +1 -1
  102. package/dist/web-server/health-service.d.ts.map +1 -1
  103. package/dist/web-server/health-service.js +0 -4
  104. package/dist/web-server/health-service.js.map +1 -1
  105. package/dist/web-server/routes/index.d.ts.map +1 -1
  106. package/dist/web-server/routes/index.js +0 -3
  107. package/dist/web-server/routes/index.js.map +1 -1
  108. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  109. package/dist/web-server/routes/settings-routes.js +0 -4
  110. package/dist/web-server/routes/settings-routes.js.map +1 -1
  111. package/package.json +1 -1
  112. package/scripts/background-redis-bridge.js +320 -0
  113. package/scripts/monitor-task.js +313 -0
  114. package/dist/commands/cliproxy-command.d.ts +0 -21
  115. package/dist/commands/cliproxy-command.d.ts.map +0 -1
  116. package/dist/commands/cliproxy-command.js +0 -1099
  117. package/dist/commands/cliproxy-command.js.map +0 -1
  118. package/dist/commands/cliproxy-sync-handler.d.ts +0 -19
  119. package/dist/commands/cliproxy-sync-handler.d.ts.map +0 -1
  120. package/dist/commands/cliproxy-sync-handler.js +0 -99
  121. package/dist/commands/cliproxy-sync-handler.js.map +0 -1
  122. package/dist/utils/websearch/gemini-cli.d.ts +0 -36
  123. package/dist/utils/websearch/gemini-cli.d.ts.map +0 -1
  124. package/dist/utils/websearch/gemini-cli.js +0 -132
  125. package/dist/utils/websearch/gemini-cli.js.map +0 -1
  126. package/dist/utils/websearch/grok-cli.d.ts +0 -26
  127. package/dist/utils/websearch/grok-cli.d.ts.map +0 -1
  128. package/dist/utils/websearch/grok-cli.js +0 -81
  129. package/dist/utils/websearch/grok-cli.js.map +0 -1
  130. package/dist/utils/websearch/hook-config.d.ts +0 -27
  131. package/dist/utils/websearch/hook-config.d.ts.map +0 -1
  132. package/dist/utils/websearch/hook-config.js +0 -280
  133. package/dist/utils/websearch/hook-config.js.map +0 -1
  134. package/dist/utils/websearch/hook-env.d.ts +0 -16
  135. package/dist/utils/websearch/hook-env.d.ts.map +0 -1
  136. package/dist/utils/websearch/hook-env.js +0 -62
  137. package/dist/utils/websearch/hook-env.js.map +0 -1
  138. package/dist/utils/websearch/hook-installer.d.ts +0 -30
  139. package/dist/utils/websearch/hook-installer.d.ts.map +0 -1
  140. package/dist/utils/websearch/hook-installer.js +0 -148
  141. package/dist/utils/websearch/hook-installer.js.map +0 -1
  142. package/dist/utils/websearch/hook-utils.d.ts +0 -18
  143. package/dist/utils/websearch/hook-utils.d.ts.map +0 -1
  144. package/dist/utils/websearch/hook-utils.js +0 -59
  145. package/dist/utils/websearch/hook-utils.js.map +0 -1
  146. package/dist/utils/websearch/index.d.ts +0 -17
  147. package/dist/utils/websearch/index.d.ts.map +0 -1
  148. package/dist/utils/websearch/index.js +0 -51
  149. package/dist/utils/websearch/index.js.map +0 -1
  150. package/dist/utils/websearch/opencode-cli.d.ts +0 -26
  151. package/dist/utils/websearch/opencode-cli.d.ts.map +0 -1
  152. package/dist/utils/websearch/opencode-cli.js +0 -81
  153. package/dist/utils/websearch/opencode-cli.js.map +0 -1
  154. package/dist/utils/websearch/profile-hook-injector.d.ts +0 -20
  155. package/dist/utils/websearch/profile-hook-injector.d.ts.map +0 -1
  156. package/dist/utils/websearch/profile-hook-injector.js +0 -250
  157. package/dist/utils/websearch/profile-hook-injector.js.map +0 -1
  158. package/dist/utils/websearch/status.d.ts +0 -36
  159. package/dist/utils/websearch/status.d.ts.map +0 -1
  160. package/dist/utils/websearch/status.js +0 -192
  161. package/dist/utils/websearch/status.js.map +0 -1
  162. package/dist/utils/websearch/types.d.ts +0 -85
  163. package/dist/utils/websearch/types.d.ts.map +0 -1
  164. package/dist/utils/websearch/types.js +0 -10
  165. package/dist/utils/websearch/types.js.map +0 -1
  166. package/dist/utils/websearch-manager.d.ts +0 -31
  167. package/dist/utils/websearch-manager.d.ts.map +0 -1
  168. package/dist/utils/websearch-manager.js +0 -72
  169. package/dist/utils/websearch-manager.js.map +0 -1
  170. package/dist/web-server/health/websearch-checks.d.ts +0 -11
  171. package/dist/web-server/health/websearch-checks.d.ts.map +0 -1
  172. package/dist/web-server/health/websearch-checks.js +0 -53
  173. package/dist/web-server/health/websearch-checks.js.map +0 -1
  174. package/dist/web-server/routes/websearch-routes.d.ts +0 -6
  175. package/dist/web-server/routes/websearch-routes.d.ts.map +0 -1
  176. package/dist/web-server/routes/websearch-routes.js +0 -130
  177. package/dist/web-server/routes/websearch-routes.js.map +0 -1
  178. package/lib/hooks/block-websearch.cjs +0 -75
  179. package/lib/hooks/websearch-transformer.cjs +0 -632
@@ -1,17 +0,0 @@
1
- /**
2
- * WebSearch Module Barrel Export
3
- *
4
- * Re-exports all WebSearch functionality from submodules.
5
- *
6
- * @module utils/websearch
7
- */
8
- export type { GeminiCliStatus, GrokCliStatus, OpenCodeCliStatus, WebSearchReadiness, WebSearchStatus, WebSearchCliInfo, WebSearchProviderConfig, WebSearchConfig, } from './types';
9
- export { getGeminiCliStatus, hasGeminiCli, isGeminiAuthenticated, clearGeminiCliCache, } from './gemini-cli';
10
- export { getGrokCliStatus, hasGrokCli, clearGrokCliCache } from './grok-cli';
11
- export { getOpenCodeCliStatus, hasOpenCodeCli, clearOpenCodeCliCache } from './opencode-cli';
12
- export { getHookPath, hasWebSearchHook, getWebSearchHookConfig, installWebSearchHook, uninstallWebSearchHook, } from './hook-installer';
13
- export { removeHookConfig } from './hook-config';
14
- export { getWebSearchHookEnv } from './hook-env';
15
- export { getWebSearchCliProviders, hasAnyWebSearchCli, getCliInstallHints, getWebSearchReadiness, displayWebSearchStatus, } from './status';
16
- export { ensureProfileHooks, removeMigrationMarker } from './profile-hook-injector';
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- /**
3
- * WebSearch Module Barrel Export
4
- *
5
- * Re-exports all WebSearch functionality from submodules.
6
- *
7
- * @module utils/websearch
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.removeMigrationMarker = exports.ensureProfileHooks = exports.displayWebSearchStatus = exports.getWebSearchReadiness = exports.getCliInstallHints = exports.hasAnyWebSearchCli = exports.getWebSearchCliProviders = exports.getWebSearchHookEnv = exports.removeHookConfig = exports.uninstallWebSearchHook = exports.installWebSearchHook = exports.getWebSearchHookConfig = exports.hasWebSearchHook = exports.getHookPath = exports.clearOpenCodeCliCache = exports.hasOpenCodeCli = exports.getOpenCodeCliStatus = exports.clearGrokCliCache = exports.hasGrokCli = exports.getGrokCliStatus = exports.clearGeminiCliCache = exports.isGeminiAuthenticated = exports.hasGeminiCli = exports.getGeminiCliStatus = void 0;
11
- // Gemini CLI
12
- var gemini_cli_1 = require("./gemini-cli");
13
- Object.defineProperty(exports, "getGeminiCliStatus", { enumerable: true, get: function () { return gemini_cli_1.getGeminiCliStatus; } });
14
- Object.defineProperty(exports, "hasGeminiCli", { enumerable: true, get: function () { return gemini_cli_1.hasGeminiCli; } });
15
- Object.defineProperty(exports, "isGeminiAuthenticated", { enumerable: true, get: function () { return gemini_cli_1.isGeminiAuthenticated; } });
16
- Object.defineProperty(exports, "clearGeminiCliCache", { enumerable: true, get: function () { return gemini_cli_1.clearGeminiCliCache; } });
17
- // Grok CLI
18
- var grok_cli_1 = require("./grok-cli");
19
- Object.defineProperty(exports, "getGrokCliStatus", { enumerable: true, get: function () { return grok_cli_1.getGrokCliStatus; } });
20
- Object.defineProperty(exports, "hasGrokCli", { enumerable: true, get: function () { return grok_cli_1.hasGrokCli; } });
21
- Object.defineProperty(exports, "clearGrokCliCache", { enumerable: true, get: function () { return grok_cli_1.clearGrokCliCache; } });
22
- // OpenCode CLI
23
- var opencode_cli_1 = require("./opencode-cli");
24
- Object.defineProperty(exports, "getOpenCodeCliStatus", { enumerable: true, get: function () { return opencode_cli_1.getOpenCodeCliStatus; } });
25
- Object.defineProperty(exports, "hasOpenCodeCli", { enumerable: true, get: function () { return opencode_cli_1.hasOpenCodeCli; } });
26
- Object.defineProperty(exports, "clearOpenCodeCliCache", { enumerable: true, get: function () { return opencode_cli_1.clearOpenCodeCliCache; } });
27
- // Hook Installation
28
- var hook_installer_1 = require("./hook-installer");
29
- Object.defineProperty(exports, "getHookPath", { enumerable: true, get: function () { return hook_installer_1.getHookPath; } });
30
- Object.defineProperty(exports, "hasWebSearchHook", { enumerable: true, get: function () { return hook_installer_1.hasWebSearchHook; } });
31
- Object.defineProperty(exports, "getWebSearchHookConfig", { enumerable: true, get: function () { return hook_installer_1.getWebSearchHookConfig; } });
32
- Object.defineProperty(exports, "installWebSearchHook", { enumerable: true, get: function () { return hook_installer_1.installWebSearchHook; } });
33
- Object.defineProperty(exports, "uninstallWebSearchHook", { enumerable: true, get: function () { return hook_installer_1.uninstallWebSearchHook; } });
34
- // Hook Config (removal)
35
- var hook_config_1 = require("./hook-config");
36
- Object.defineProperty(exports, "removeHookConfig", { enumerable: true, get: function () { return hook_config_1.removeHookConfig; } });
37
- // Hook Environment
38
- var hook_env_1 = require("./hook-env");
39
- Object.defineProperty(exports, "getWebSearchHookEnv", { enumerable: true, get: function () { return hook_env_1.getWebSearchHookEnv; } });
40
- // Status and Readiness
41
- var status_1 = require("./status");
42
- Object.defineProperty(exports, "getWebSearchCliProviders", { enumerable: true, get: function () { return status_1.getWebSearchCliProviders; } });
43
- Object.defineProperty(exports, "hasAnyWebSearchCli", { enumerable: true, get: function () { return status_1.hasAnyWebSearchCli; } });
44
- Object.defineProperty(exports, "getCliInstallHints", { enumerable: true, get: function () { return status_1.getCliInstallHints; } });
45
- Object.defineProperty(exports, "getWebSearchReadiness", { enumerable: true, get: function () { return status_1.getWebSearchReadiness; } });
46
- Object.defineProperty(exports, "displayWebSearchStatus", { enumerable: true, get: function () { return status_1.displayWebSearchStatus; } });
47
- // Profile Hook Injection
48
- var profile_hook_injector_1 = require("./profile-hook-injector");
49
- Object.defineProperty(exports, "ensureProfileHooks", { enumerable: true, get: function () { return profile_hook_injector_1.ensureProfileHooks; } });
50
- Object.defineProperty(exports, "removeMigrationMarker", { enumerable: true, get: function () { return profile_hook_injector_1.removeMigrationMarker; } });
51
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/websearch/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAcH,aAAa;AACb,2CAKsB;AAJpB,gHAAA,kBAAkB,OAAA;AAClB,0GAAA,YAAY,OAAA;AACZ,mHAAA,qBAAqB,OAAA;AACrB,iHAAA,mBAAmB,OAAA;AAGrB,WAAW;AACX,uCAA6E;AAApE,4GAAA,gBAAgB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAExD,eAAe;AACf,+CAA6F;AAApF,oHAAA,oBAAoB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AAEpE,oBAAoB;AACpB,mDAM0B;AALxB,6GAAA,WAAW,OAAA;AACX,kHAAA,gBAAgB,OAAA;AAChB,wHAAA,sBAAsB,OAAA;AACtB,sHAAA,oBAAoB,OAAA;AACpB,wHAAA,sBAAsB,OAAA;AAGxB,wBAAwB;AACxB,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAE5B,uBAAuB;AACvB,mCAMkB;AALhB,kHAAA,wBAAwB,OAAA;AACxB,4GAAA,kBAAkB,OAAA;AAClB,4GAAA,kBAAkB,OAAA;AAClB,+GAAA,qBAAqB,OAAA;AACrB,gHAAA,sBAAsB,OAAA;AAGxB,yBAAyB;AACzB,iEAAoF;AAA3E,2HAAA,kBAAkB,OAAA;AAAE,8HAAA,qBAAqB,OAAA"}
@@ -1,26 +0,0 @@
1
- /**
2
- * OpenCode CLI Detection
3
- *
4
- * Detects and manages OpenCode CLI installation status.
5
- *
6
- * @module utils/websearch/opencode-cli
7
- */
8
- import type { OpenCodeCliStatus } from './types';
9
- /**
10
- * Check if OpenCode CLI is installed globally
11
- *
12
- * OpenCode provides built-in web search via opencode/grok-code model.
13
- * Install: curl -fsSL https://opencode.ai/install | bash
14
- *
15
- * @returns OpenCode CLI status with path and version
16
- */
17
- export declare function getOpenCodeCliStatus(): OpenCodeCliStatus;
18
- /**
19
- * Check if OpenCode CLI is available (quick boolean check)
20
- */
21
- export declare function hasOpenCodeCli(): boolean;
22
- /**
23
- * Clear OpenCode CLI cache (for testing or after installation)
24
- */
25
- export declare function clearOpenCodeCliCache(): void;
26
- //# sourceMappingURL=opencode-cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode-cli.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/opencode-cli.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAgDxD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- /**
3
- * OpenCode CLI Detection
4
- *
5
- * Detects and manages OpenCode CLI installation status.
6
- *
7
- * @module utils/websearch/opencode-cli
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.clearOpenCodeCliCache = exports.hasOpenCodeCli = exports.getOpenCodeCliStatus = void 0;
11
- const child_process_1 = require("child_process");
12
- // Cache for OpenCode CLI status (per process)
13
- let opencodeCliCache = null;
14
- /**
15
- * Check if OpenCode CLI is installed globally
16
- *
17
- * OpenCode provides built-in web search via opencode/grok-code model.
18
- * Install: curl -fsSL https://opencode.ai/install | bash
19
- *
20
- * @returns OpenCode CLI status with path and version
21
- */
22
- function getOpenCodeCliStatus() {
23
- // Return cached result if available
24
- if (opencodeCliCache) {
25
- return opencodeCliCache;
26
- }
27
- const result = {
28
- installed: false,
29
- path: undefined,
30
- version: undefined,
31
- };
32
- try {
33
- const isWindows = process.platform === 'win32';
34
- const whichCmd = isWindows ? 'where opencode' : 'which opencode';
35
- const pathResult = (0, child_process_1.execSync)(whichCmd, {
36
- encoding: 'utf8',
37
- timeout: 5000,
38
- stdio: ['pipe', 'pipe', 'pipe'],
39
- });
40
- const opencodePath = pathResult.trim().split('\n')[0]; // First result on Windows
41
- if (opencodePath) {
42
- result.installed = true;
43
- result.path = opencodePath;
44
- // Try to get version
45
- try {
46
- const versionResult = (0, child_process_1.execSync)('opencode --version', {
47
- encoding: 'utf8',
48
- timeout: 5000,
49
- stdio: ['pipe', 'pipe', 'pipe'],
50
- });
51
- result.version = versionResult.trim();
52
- }
53
- catch {
54
- // Version check failed, but CLI is installed
55
- result.version = 'unknown';
56
- }
57
- }
58
- }
59
- catch {
60
- // Command not found - OpenCode CLI not installed
61
- }
62
- // Cache result
63
- opencodeCliCache = result;
64
- return result;
65
- }
66
- exports.getOpenCodeCliStatus = getOpenCodeCliStatus;
67
- /**
68
- * Check if OpenCode CLI is available (quick boolean check)
69
- */
70
- function hasOpenCodeCli() {
71
- return getOpenCodeCliStatus().installed;
72
- }
73
- exports.hasOpenCodeCli = hasOpenCodeCli;
74
- /**
75
- * Clear OpenCode CLI cache (for testing or after installation)
76
- */
77
- function clearOpenCodeCliCache() {
78
- opencodeCliCache = null;
79
- }
80
- exports.clearOpenCodeCliCache = clearOpenCodeCliCache;
81
- //# sourceMappingURL=opencode-cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode-cli.js","sourceRoot":"","sources":["../../../src/utils/websearch/opencode-cli.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iDAAyC;AAGzC,8CAA8C;AAC9C,IAAI,gBAAgB,GAA6B,IAAI,CAAC;AAEtD;;;;;;;GAOG;AACH,SAAgB,oBAAoB;IAClC,oCAAoC;IACpC,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAsB;QAChC,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAEjE,MAAM,UAAU,GAAG,IAAA,wBAAQ,EAAC,QAAQ,EAAE;YACpC,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAEjF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;YAE3B,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,oBAAoB,EAAE;oBACnD,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC;gBACH,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,6CAA6C;gBAC7C,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;IAED,eAAe;IACf,gBAAgB,GAAG,MAAM,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAhDD,oDAgDC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,oBAAoB,EAAE,CAAC,SAAS,CAAC;AAC1C,CAAC;AAFD,wCAEC;AAED;;GAEG;AACH,SAAgB,qBAAqB;IACnC,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAFD,sDAEC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Profile Hook Injector
3
- *
4
- * Injects WebSearch hooks into per-profile settings files.
5
- * This replaces the global ~/.claude/settings.json approach.
6
- *
7
- * @module utils/websearch/profile-hook-injector
8
- */
9
- /**
10
- * Ensure WebSearch hook is configured in profile's settings file
11
- *
12
- * @param profileName - Name of the profile (e.g., 'agy', 'gemini', 'glm')
13
- * @returns true if hook is configured (existing or newly added)
14
- */
15
- export declare function ensureProfileHooks(profileName: string): boolean;
16
- /**
17
- * Remove migration marker (called during uninstall)
18
- */
19
- export declare function removeMigrationMarker(): void;
20
- //# sourceMappingURL=profile-hook-injector.d.ts.map
@@ -1 +0,0 @@
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,CAmG/D;AA+DD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAW5C"}
@@ -1,250 +0,0 @@
1
- "use strict";
2
- /**
3
- * Profile Hook Injector
4
- *
5
- * Injects WebSearch hooks into per-profile settings files.
6
- * This replaces the global ~/.claude/settings.json approach.
7
- *
8
- * @module utils/websearch/profile-hook-injector
9
- */
10
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- var desc = Object.getOwnPropertyDescriptor(m, k);
13
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
- desc = { enumerable: true, get: function() { return m[k]; } };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }) : (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- o[k2] = m[k];
20
- }));
21
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
- Object.defineProperty(o, "default", { enumerable: true, value: v });
23
- }) : function(o, v) {
24
- o["default"] = v;
25
- });
26
- var __importStar = (this && this.__importStar) || function (mod) {
27
- if (mod && mod.__esModule) return mod;
28
- var result = {};
29
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
30
- __setModuleDefault(result, mod);
31
- return result;
32
- };
33
- Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.removeMigrationMarker = exports.ensureProfileHooks = void 0;
35
- const fs = __importStar(require("fs"));
36
- const path = __importStar(require("path"));
37
- const ui_1 = require("../ui");
38
- const hook_config_1 = require("./hook-config");
39
- const unified_config_loader_1 = require("../../config/unified-config-loader");
40
- const hook_config_2 = require("./hook-config");
41
- const config_manager_1 = require("../config-manager");
42
- const hook_utils_1 = require("./hook-utils");
43
- // Valid profile name pattern (alphanumeric, dash, underscore only)
44
- const VALID_PROFILE_NAME = /^[a-zA-Z0-9_-]+$/;
45
- /**
46
- * Get migration marker path (respects CCS_HOME for test isolation)
47
- */
48
- function getMigrationMarkerPath() {
49
- return path.join((0, config_manager_1.getCcsDir)(), '.hook-migrated');
50
- }
51
- /**
52
- * Check if CCS WebSearch hook exists in settings
53
- */
54
- function hasCcsHook(settings) {
55
- const hooks = settings.hooks;
56
- if (!hooks?.PreToolUse)
57
- return false;
58
- return hooks.PreToolUse.some((h) => {
59
- return (0, hook_utils_1.isCcsWebSearchHook)(h);
60
- });
61
- }
62
- /**
63
- * Migrate CCS hook from global settings to profile settings (one-time)
64
- */
65
- function migrateGlobalHook() {
66
- const markerPath = getMigrationMarkerPath();
67
- if (fs.existsSync(markerPath)) {
68
- return; // Already migrated
69
- }
70
- try {
71
- const removed = (0, hook_config_2.removeHookConfig)();
72
- if (removed && process.env.CCS_DEBUG) {
73
- console.error((0, ui_1.info)('Migrated WebSearch hook from global settings'));
74
- }
75
- // Ensure CCS dir exists before creating marker
76
- const ccsDir = (0, config_manager_1.getCcsDir)();
77
- if (!fs.existsSync(ccsDir)) {
78
- fs.mkdirSync(ccsDir, { recursive: true, mode: 0o700 });
79
- }
80
- // Create marker file atomically (wx = fail if exists, prevents race condition)
81
- fs.writeFileSync(markerPath, new Date().toISOString(), { encoding: 'utf8', flag: 'wx' });
82
- }
83
- catch (error) {
84
- if (process.env.CCS_DEBUG) {
85
- console.error((0, ui_1.warn)(`Migration failed: ${error.message}`));
86
- }
87
- }
88
- }
89
- /**
90
- * Ensure WebSearch hook is configured in profile's settings file
91
- *
92
- * @param profileName - Name of the profile (e.g., 'agy', 'gemini', 'glm')
93
- * @returns true if hook is configured (existing or newly added)
94
- */
95
- function ensureProfileHooks(profileName) {
96
- try {
97
- // Validate profile name to prevent path traversal
98
- if (!VALID_PROFILE_NAME.test(profileName)) {
99
- if (process.env.CCS_DEBUG) {
100
- console.error((0, ui_1.warn)(`Invalid profile name: ${profileName}`));
101
- }
102
- return false;
103
- }
104
- const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
105
- // Skip if WebSearch is disabled
106
- if (!wsConfig.enabled) {
107
- return false;
108
- }
109
- // One-time migration from global settings
110
- migrateGlobalHook();
111
- // Get CCS directory (respects CCS_HOME for test isolation)
112
- const ccsDir = (0, config_manager_1.getCcsDir)();
113
- // Ensure CCS dir exists
114
- if (!fs.existsSync(ccsDir)) {
115
- fs.mkdirSync(ccsDir, { recursive: true, mode: 0o700 });
116
- }
117
- const settingsPath = path.join(ccsDir, `${profileName}.settings.json`);
118
- // Read existing settings or create empty
119
- let settings = {};
120
- if (fs.existsSync(settingsPath)) {
121
- try {
122
- const content = fs.readFileSync(settingsPath, 'utf8');
123
- settings = JSON.parse(content);
124
- }
125
- catch (parseError) {
126
- if (process.env.CCS_DEBUG) {
127
- console.error((0, ui_1.warn)(`Malformed ${profileName}.settings.json: ${parseError.message}`));
128
- }
129
- // Continue with empty settings, will add hooks
130
- }
131
- }
132
- // Check if CCS hook already present
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
- // Re-read file to compare with modified settings (deduplicateCcsHooks mutates in-place)
138
- const newContent = JSON.stringify(settings, null, 2);
139
- const existingContent = fs.readFileSync(settingsPath, 'utf8');
140
- // Only write if content actually changed
141
- if (newContent !== existingContent) {
142
- fs.writeFileSync(settingsPath, newContent, 'utf8');
143
- if (process.env.CCS_DEBUG) {
144
- console.error((0, ui_1.info)(`Removed duplicate WebSearch hooks from ${profileName}.settings.json`));
145
- }
146
- }
147
- }
148
- // Update timeout if needed
149
- return updateHookTimeoutIfNeeded(settings, settingsPath);
150
- }
151
- // Get hook config
152
- const hookConfig = (0, hook_config_1.getWebSearchHookConfig)();
153
- // Ensure hooks structure exists
154
- if (!settings.hooks) {
155
- settings.hooks = {};
156
- }
157
- const settingsHooks = settings.hooks;
158
- if (!settingsHooks.PreToolUse) {
159
- settingsHooks.PreToolUse = [];
160
- }
161
- // Add CCS hook
162
- const preToolUseHooks = hookConfig.PreToolUse;
163
- settingsHooks.PreToolUse.push(...preToolUseHooks);
164
- // Write updated settings
165
- fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
166
- if (process.env.CCS_DEBUG) {
167
- console.error((0, ui_1.info)(`Added WebSearch hook to ${profileName}.settings.json`));
168
- }
169
- return true;
170
- }
171
- catch (error) {
172
- if (process.env.CCS_DEBUG) {
173
- console.error((0, ui_1.warn)(`Failed to inject hook: ${error.message}`));
174
- }
175
- return false;
176
- }
177
- }
178
- exports.ensureProfileHooks = ensureProfileHooks;
179
- /**
180
- * Update hook timeout if it differs from current config
181
- */
182
- function updateHookTimeoutIfNeeded(settings, settingsPath) {
183
- try {
184
- const hooks = settings.hooks;
185
- const hookConfig = (0, hook_config_1.getWebSearchHookConfig)();
186
- const expectedHookPath = (0, hook_config_1.getHookPath)();
187
- const expectedCommand = `node "${expectedHookPath}"`;
188
- const expectedHooks = hookConfig.PreToolUse[0]
189
- .hooks;
190
- const expectedTimeout = expectedHooks[0].timeout;
191
- let needsUpdate = false;
192
- for (const h of hooks.PreToolUse) {
193
- const hook = h;
194
- if (hook.matcher !== 'WebSearch')
195
- continue;
196
- const hookArray = hook.hooks;
197
- if (!hookArray?.[0]?.command)
198
- continue;
199
- const command = hookArray[0].command;
200
- if (typeof command !== 'string')
201
- continue;
202
- // Normalize path separators for cross-platform matching (Windows uses backslashes)
203
- const normalizedCommand = command
204
- .replace(/\\/g, '/') // Windows backslashes
205
- .replace(/\/+/g, '/'); // Collapse multiple slashes
206
- if (!normalizedCommand.includes('.ccs/hooks/websearch-transformer'))
207
- continue;
208
- // Found CCS hook - check if needs update
209
- if (hookArray[0].command !== expectedCommand) {
210
- hookArray[0].command = expectedCommand;
211
- needsUpdate = true;
212
- }
213
- if (hookArray[0].timeout !== expectedTimeout) {
214
- hookArray[0].timeout = expectedTimeout;
215
- needsUpdate = true;
216
- }
217
- }
218
- if (needsUpdate) {
219
- fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
220
- if (process.env.CCS_DEBUG) {
221
- console.error((0, ui_1.info)('Updated WebSearch hook timeout in profile settings'));
222
- }
223
- }
224
- return true;
225
- }
226
- catch (error) {
227
- if (process.env.CCS_DEBUG) {
228
- console.error((0, ui_1.warn)(`updateHookTimeoutIfNeeded failed: ${error.message}`));
229
- }
230
- return false;
231
- }
232
- }
233
- /**
234
- * Remove migration marker (called during uninstall)
235
- */
236
- function removeMigrationMarker() {
237
- try {
238
- const markerPath = getMigrationMarkerPath();
239
- if (fs.existsSync(markerPath)) {
240
- fs.unlinkSync(markerPath);
241
- }
242
- }
243
- catch (error) {
244
- if (process.env.CCS_DEBUG) {
245
- console.error((0, ui_1.warn)(`removeMigrationMarker failed: ${error.message}`));
246
- }
247
- }
248
- }
249
- exports.removeMigrationMarker = removeMigrationMarker;
250
- //# sourceMappingURL=profile-hook-injector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profile-hook-injector.js","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * WebSearch Status and Readiness
3
- *
4
- * Provides status checking and display functions for WebSearch.
5
- *
6
- * @module utils/websearch/status
7
- */
8
- import type { WebSearchCliInfo, WebSearchStatus } from './types';
9
- /**
10
- * Get all WebSearch CLI providers with their status
11
- */
12
- export declare function getWebSearchCliProviders(): WebSearchCliInfo[];
13
- /**
14
- * Check if any WebSearch CLI is available
15
- */
16
- export declare function hasAnyWebSearchCli(): boolean;
17
- /**
18
- * Get install hints for CLI-only users when no WebSearch CLI is installed
19
- * Returns raw message strings (without indicator prefix) for display
20
- */
21
- export declare function getCliInstallHints(): string[];
22
- /**
23
- * Get WebSearch readiness status for display
24
- *
25
- * Called on third-party profile startup to inform user.
26
- * Checks both installation AND authentication status for Gemini CLI.
27
- */
28
- export declare function getWebSearchReadiness(): WebSearchStatus;
29
- /**
30
- * Display WebSearch status (single line, equilibrium UX)
31
- *
32
- * Only call for third-party profiles.
33
- * Shows detailed install hints when no CLI is installed.
34
- */
35
- export declare function displayWebSearchStatus(): void;
36
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,EAAE,CA4C7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAW7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAqEvD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAyB7C"}