@kaitranntt/ccs 7.63.0 → 7.63.1-dev.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 (171) hide show
  1. package/README.md +10 -3
  2. package/dist/api/services/profile-lifecycle-service.js +4 -4
  3. package/dist/api/services/profile-lifecycle-service.js.map +1 -1
  4. package/dist/api/services/profile-writer.d.ts.map +1 -1
  5. package/dist/api/services/profile-writer.js +3 -5
  6. package/dist/api/services/profile-writer.js.map +1 -1
  7. package/dist/ccs.js +21 -9
  8. package/dist/ccs.js.map +1 -1
  9. package/dist/cliproxy/accounts/email-account-identity.d.ts +12 -0
  10. package/dist/cliproxy/accounts/email-account-identity.d.ts.map +1 -0
  11. package/dist/cliproxy/accounts/email-account-identity.js +124 -0
  12. package/dist/cliproxy/accounts/email-account-identity.js.map +1 -0
  13. package/dist/cliproxy/accounts/query.d.ts.map +1 -1
  14. package/dist/cliproxy/accounts/query.js +15 -8
  15. package/dist/cliproxy/accounts/query.js.map +1 -1
  16. package/dist/cliproxy/accounts/registry.d.ts +6 -0
  17. package/dist/cliproxy/accounts/registry.d.ts.map +1 -1
  18. package/dist/cliproxy/accounts/registry.js +136 -42
  19. package/dist/cliproxy/accounts/registry.js.map +1 -1
  20. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  21. package/dist/cliproxy/auth/token-manager.js +45 -11
  22. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  23. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  24. package/dist/cliproxy/executor/index.js +25 -12
  25. package/dist/cliproxy/executor/index.js.map +1 -1
  26. package/dist/cliproxy/quota-fetcher-codex.d.ts +0 -3
  27. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +1 -1
  28. package/dist/cliproxy/quota-fetcher-codex.js +46 -17
  29. package/dist/cliproxy/quota-fetcher-codex.js.map +1 -1
  30. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  31. package/dist/cliproxy/services/variant-settings.js +4 -6
  32. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  33. package/dist/cliproxy/stats-transformer.d.ts.map +1 -1
  34. package/dist/cliproxy/stats-transformer.js +26 -3
  35. package/dist/cliproxy/stats-transformer.js.map +1 -1
  36. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  37. package/dist/commands/cliproxy/quota-subcommand.js +25 -22
  38. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  39. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  40. package/dist/commands/cliproxy/variant-subcommand.js +14 -6
  41. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  42. package/dist/commands/install-command.d.ts.map +1 -1
  43. package/dist/commands/install-command.js +8 -2
  44. package/dist/commands/install-command.js.map +1 -1
  45. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  46. package/dist/copilot/copilot-executor.js +11 -2
  47. package/dist/copilot/copilot-executor.js.map +1 -1
  48. package/dist/delegation/executor/result-aggregator.d.ts +2 -1
  49. package/dist/delegation/executor/result-aggregator.d.ts.map +1 -1
  50. package/dist/delegation/executor/result-aggregator.js +21 -1
  51. package/dist/delegation/executor/result-aggregator.js.map +1 -1
  52. package/dist/delegation/executor/types.d.ts +6 -0
  53. package/dist/delegation/executor/types.d.ts.map +1 -1
  54. package/dist/delegation/headless-executor.d.ts.map +1 -1
  55. package/dist/delegation/headless-executor.js +69 -4
  56. package/dist/delegation/headless-executor.js.map +1 -1
  57. package/dist/management/instance-manager.d.ts +1 -1
  58. package/dist/management/instance-manager.d.ts.map +1 -1
  59. package/dist/management/instance-manager.js +10 -2
  60. package/dist/management/instance-manager.js.map +1 -1
  61. package/dist/shared/compatible-cli-contracts.d.ts +4 -0
  62. package/dist/shared/compatible-cli-contracts.d.ts.map +1 -1
  63. package/dist/targets/codex-adapter.d.ts.map +1 -1
  64. package/dist/targets/codex-adapter.js +78 -3
  65. package/dist/targets/codex-adapter.js.map +1 -1
  66. package/dist/targets/codex-detector.d.ts.map +1 -1
  67. package/dist/targets/codex-detector.js +28 -7
  68. package/dist/targets/codex-detector.js.map +1 -1
  69. package/dist/ui/assets/{accounts-DkxZnPJE.js → accounts-CUUJb7DN.js} +1 -1
  70. package/dist/ui/assets/{alert-dialog-CiYMglgR.js → alert-dialog-B3irFOWw.js} +1 -1
  71. package/dist/ui/assets/{api-DaOtMRT4.js → api-D-Qqy1yz.js} +2 -2
  72. package/dist/ui/assets/{auth-section-BMaKBRA_.js → auth-section-DIo3G68G.js} +1 -1
  73. package/dist/ui/assets/{backups-section-DOpSADoH.js → backups-section-AFO82gIq.js} +1 -1
  74. package/dist/ui/assets/{channels-zDFV-BlC.js → channels-BCTKZ7gt.js} +1 -1
  75. package/dist/ui/assets/{checkbox-Cb5AZBZL.js → checkbox-jPTeVbcz.js} +1 -1
  76. package/dist/ui/assets/{claude-extension-B5RngGem.js → claude-extension-BNiAud6L.js} +1 -1
  77. package/dist/ui/assets/cliproxy-CoYvAxcj.js +3 -0
  78. package/dist/ui/assets/{cliproxy-ai-providers-DVaaS-CT.js → cliproxy-ai-providers-C9jXuZcV.js} +1 -1
  79. package/dist/ui/assets/cliproxy-control-panel-DRSjNcrR.js +1 -0
  80. package/dist/ui/assets/codex-DSAAz_k8.js +27 -0
  81. package/dist/ui/assets/{confirm-dialog-B9vRgowr.js → confirm-dialog-Dn7GsgSZ.js} +1 -1
  82. package/dist/ui/assets/{copilot-HvsOp6hu.js → copilot-Ddvc59py.js} +2 -2
  83. package/dist/ui/assets/{cursor-C1XOjAWS.js → cursor-CPLxNsYY.js} +1 -1
  84. package/dist/ui/assets/{droid-DshEfT1H.js → droid-C5ArrKfL.js} +1 -1
  85. package/dist/ui/assets/{globalenv-section-CmcMkb6z.js → globalenv-section-CddBw-9L.js} +1 -1
  86. package/dist/ui/assets/{health-CE0VQs6K.js → health-7Wp3Ar7n.js} +1 -1
  87. package/dist/ui/assets/icons-C7Np5k44.js +1 -0
  88. package/dist/ui/assets/{index-CmKclBR1.js → index-1GqjYVWP.js} +1 -1
  89. package/dist/ui/assets/{index-CmtSgCxo.js → index-BPIA8mAF.js} +1 -1
  90. package/dist/ui/assets/index-BsTZB-Im.css +1 -0
  91. package/dist/ui/assets/{index-DAtuJuGe.js → index-C7OpByHy.js} +36 -36
  92. package/dist/ui/assets/index-CBwOAp7P.js +1 -0
  93. package/dist/ui/assets/{index-CesVGA6m.js → index-DSgKWnG8.js} +1 -1
  94. package/dist/ui/assets/{masked-input-B2tcbvAj.js → masked-input-BlP9jFt5.js} +1 -1
  95. package/dist/ui/assets/{proxy-status-widget-BnJD49TF.js → proxy-status-widget-CFyrt5Yw.js} +1 -1
  96. package/dist/ui/assets/{raw-json-settings-editor-panel-DnUbq1__.js → raw-json-settings-editor-panel-CfcTOhs4.js} +1 -1
  97. package/dist/ui/assets/{searchable-select-ULayr5K1.js → searchable-select-CcCH2Ug3.js} +1 -1
  98. package/dist/ui/assets/{separator--ZH5ZM-3.js → separator-DRULo1eG.js} +1 -1
  99. package/dist/ui/assets/shared-ByRk7nxS.js +8 -0
  100. package/dist/ui/assets/{switch-DmDIWykO.js → switch-BO_9wSB8.js} +1 -1
  101. package/dist/ui/assets/{table-E5IxHhrW.js → table-84HxfWMM.js} +1 -1
  102. package/dist/ui/assets/tanstack-CkjseTWE.js +4 -0
  103. package/dist/ui/assets/updates-BgPdUQoA.js +1 -0
  104. package/dist/ui/index.html +4 -4
  105. package/dist/utils/claude-config-path.d.ts +2 -0
  106. package/dist/utils/claude-config-path.d.ts.map +1 -1
  107. package/dist/utils/claude-config-path.js +6 -1
  108. package/dist/utils/claude-config-path.js.map +1 -1
  109. package/dist/utils/websearch/claude-tool-args.d.ts +5 -0
  110. package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -0
  111. package/dist/utils/websearch/claude-tool-args.js +125 -0
  112. package/dist/utils/websearch/claude-tool-args.js.map +1 -0
  113. package/dist/utils/websearch/hook-env.d.ts.map +1 -1
  114. package/dist/utils/websearch/hook-env.js +8 -0
  115. package/dist/utils/websearch/hook-env.js.map +1 -1
  116. package/dist/utils/websearch/hook-installer.d.ts +3 -2
  117. package/dist/utils/websearch/hook-installer.d.ts.map +1 -1
  118. package/dist/utils/websearch/hook-installer.js +3 -2
  119. package/dist/utils/websearch/hook-installer.js.map +1 -1
  120. package/dist/utils/websearch/index.d.ts +3 -0
  121. package/dist/utils/websearch/index.d.ts.map +1 -1
  122. package/dist/utils/websearch/index.js +23 -2
  123. package/dist/utils/websearch/index.js.map +1 -1
  124. package/dist/utils/websearch/mcp-installer.d.ts +14 -0
  125. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -0
  126. package/dist/utils/websearch/mcp-installer.js +351 -0
  127. package/dist/utils/websearch/mcp-installer.js.map +1 -0
  128. package/dist/utils/websearch/profile-hook-injector.d.ts +5 -3
  129. package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -1
  130. package/dist/utils/websearch/profile-hook-injector.js +5 -3
  131. package/dist/utils/websearch/profile-hook-injector.js.map +1 -1
  132. package/dist/utils/websearch/status.d.ts.map +1 -1
  133. package/dist/utils/websearch/status.js +67 -1
  134. package/dist/utils/websearch/status.js.map +1 -1
  135. package/dist/utils/websearch/trace.d.ts +23 -0
  136. package/dist/utils/websearch/trace.d.ts.map +1 -0
  137. package/dist/utils/websearch/trace.js +206 -0
  138. package/dist/utils/websearch/trace.js.map +1 -0
  139. package/dist/utils/websearch-manager.d.ts +11 -11
  140. package/dist/utils/websearch-manager.d.ts.map +1 -1
  141. package/dist/utils/websearch-manager.js +32 -17
  142. package/dist/utils/websearch-manager.js.map +1 -1
  143. package/dist/web-server/index.d.ts.map +1 -1
  144. package/dist/web-server/index.js +3 -0
  145. package/dist/web-server/index.js.map +1 -1
  146. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  147. package/dist/web-server/routes/account-routes.js +2 -1
  148. package/dist/web-server/routes/account-routes.js.map +1 -1
  149. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  150. package/dist/web-server/routes/cliproxy-auth-routes.js +1 -1
  151. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  152. package/dist/web-server/routes/cliproxy-local-proxy.d.ts +20 -0
  153. package/dist/web-server/routes/cliproxy-local-proxy.d.ts.map +1 -0
  154. package/dist/web-server/routes/cliproxy-local-proxy.js +117 -0
  155. package/dist/web-server/routes/cliproxy-local-proxy.js.map +1 -0
  156. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  157. package/dist/web-server/services/codex-dashboard-service.js +27 -8
  158. package/dist/web-server/services/codex-dashboard-service.js.map +1 -1
  159. package/lib/hooks/websearch-transformer.cjs +660 -96
  160. package/lib/mcp/ccs-websearch-server.cjs +339 -0
  161. package/package.json +2 -1
  162. package/scripts/github/normalize-ai-review-output.mjs +328 -0
  163. package/dist/ui/assets/cliproxy-VYe0Qov1.js +0 -3
  164. package/dist/ui/assets/cliproxy-control-panel-FVIQcFti.js +0 -1
  165. package/dist/ui/assets/codex-D2yIwOs4.js +0 -27
  166. package/dist/ui/assets/icons-EMBHZkGo.js +0 -1
  167. package/dist/ui/assets/index-6dNBcNC3.js +0 -1
  168. package/dist/ui/assets/index-BAuT6yuc.css +0 -1
  169. package/dist/ui/assets/shared-qizFb9Ye.js +0 -8
  170. package/dist/ui/assets/tanstack-B8i0evp-.js +0 -4
  171. package/dist/ui/assets/updates-2Uu4Mgtg.js +0 -1
@@ -7,7 +7,7 @@
7
7
  * @module utils/websearch
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ensureProfileHooksOrThrow = exports.ensureProfileHooks = exports.getWebSearchApiKeyStates = exports.WEBSEARCH_API_KEY_PROVIDERS = exports.displayWebSearchStatus = exports.getWebSearchReadiness = exports.getCliInstallHints = exports.hasAnyWebSearchCli = exports.getWebSearchCliProviders = exports.getWebSearchHookEnv = exports.removeHookConfig = exports.uninstallWebSearchHook = exports.removeMigrationMarker = 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;
10
+ exports.ensureProfileHooksOrThrow = exports.ensureProfileHooks = exports.getWebSearchApiKeyStates = exports.WEBSEARCH_API_KEY_PROVIDERS = exports.displayWebSearchStatus = exports.getWebSearchReadiness = exports.getCliInstallHints = exports.hasAnyWebSearchCli = exports.getWebSearchCliProviders = exports.readWebSearchTraceRecords = exports.isWebSearchTraceEnabled = exports.createWebSearchTraceContext = exports.appendWebSearchTrace = exports.appendThirdPartyWebSearchToolArgs = exports.ensureWebSearchMcpOrThrow = exports.syncWebSearchMcpToConfigDir = exports.uninstallWebSearchMcp = exports.removeWebSearchMcpConfig = exports.uninstallWebSearchMcpServer = exports.ensureWebSearchMcp = exports.ensureWebSearchMcpConfig = exports.installWebSearchMcpServer = exports.getWebSearchMcpServerPath = exports.getWebSearchMcpServerName = exports.getWebSearchHookEnv = exports.removeHookConfig = exports.uninstallWebSearchHook = exports.removeMigrationMarker = 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
11
  // Gemini CLI
12
12
  var gemini_cli_1 = require("./gemini-cli");
13
13
  Object.defineProperty(exports, "getGeminiCliStatus", { enumerable: true, get: function () { return gemini_cli_1.getGeminiCliStatus; } });
@@ -38,6 +38,27 @@ Object.defineProperty(exports, "removeHookConfig", { enumerable: true, get: func
38
38
  // Hook Environment
39
39
  var hook_env_1 = require("./hook-env");
40
40
  Object.defineProperty(exports, "getWebSearchHookEnv", { enumerable: true, get: function () { return hook_env_1.getWebSearchHookEnv; } });
41
+ // MCP Runtime
42
+ var mcp_installer_1 = require("./mcp-installer");
43
+ Object.defineProperty(exports, "getWebSearchMcpServerName", { enumerable: true, get: function () { return mcp_installer_1.getWebSearchMcpServerName; } });
44
+ Object.defineProperty(exports, "getWebSearchMcpServerPath", { enumerable: true, get: function () { return mcp_installer_1.getWebSearchMcpServerPath; } });
45
+ Object.defineProperty(exports, "installWebSearchMcpServer", { enumerable: true, get: function () { return mcp_installer_1.installWebSearchMcpServer; } });
46
+ Object.defineProperty(exports, "ensureWebSearchMcpConfig", { enumerable: true, get: function () { return mcp_installer_1.ensureWebSearchMcpConfig; } });
47
+ Object.defineProperty(exports, "ensureWebSearchMcp", { enumerable: true, get: function () { return mcp_installer_1.ensureWebSearchMcp; } });
48
+ Object.defineProperty(exports, "uninstallWebSearchMcpServer", { enumerable: true, get: function () { return mcp_installer_1.uninstallWebSearchMcpServer; } });
49
+ Object.defineProperty(exports, "removeWebSearchMcpConfig", { enumerable: true, get: function () { return mcp_installer_1.removeWebSearchMcpConfig; } });
50
+ Object.defineProperty(exports, "uninstallWebSearchMcp", { enumerable: true, get: function () { return mcp_installer_1.uninstallWebSearchMcp; } });
51
+ Object.defineProperty(exports, "syncWebSearchMcpToConfigDir", { enumerable: true, get: function () { return mcp_installer_1.syncWebSearchMcpToConfigDir; } });
52
+ Object.defineProperty(exports, "ensureWebSearchMcpOrThrow", { enumerable: true, get: function () { return mcp_installer_1.ensureWebSearchMcpOrThrow; } });
53
+ // Claude launch args
54
+ var claude_tool_args_1 = require("./claude-tool-args");
55
+ Object.defineProperty(exports, "appendThirdPartyWebSearchToolArgs", { enumerable: true, get: function () { return claude_tool_args_1.appendThirdPartyWebSearchToolArgs; } });
56
+ // Trace helpers
57
+ var trace_1 = require("./trace");
58
+ Object.defineProperty(exports, "appendWebSearchTrace", { enumerable: true, get: function () { return trace_1.appendWebSearchTrace; } });
59
+ Object.defineProperty(exports, "createWebSearchTraceContext", { enumerable: true, get: function () { return trace_1.createWebSearchTraceContext; } });
60
+ Object.defineProperty(exports, "isWebSearchTraceEnabled", { enumerable: true, get: function () { return trace_1.isWebSearchTraceEnabled; } });
61
+ Object.defineProperty(exports, "readWebSearchTraceRecords", { enumerable: true, get: function () { return trace_1.readWebSearchTraceRecords; } });
41
62
  // Status and Readiness
42
63
  var status_1 = require("./status");
43
64
  Object.defineProperty(exports, "getWebSearchCliProviders", { enumerable: true, get: function () { return status_1.getWebSearchCliProviders; } });
@@ -48,7 +69,7 @@ Object.defineProperty(exports, "displayWebSearchStatus", { enumerable: true, get
48
69
  var provider_secrets_1 = require("./provider-secrets");
49
70
  Object.defineProperty(exports, "WEBSEARCH_API_KEY_PROVIDERS", { enumerable: true, get: function () { return provider_secrets_1.WEBSEARCH_API_KEY_PROVIDERS; } });
50
71
  Object.defineProperty(exports, "getWebSearchApiKeyStates", { enumerable: true, get: function () { return provider_secrets_1.getWebSearchApiKeyStates; } });
51
- // Profile Hook Injection
72
+ // Profile compatibility hook injection
52
73
  var profile_hook_injector_1 = require("./profile-hook-injector");
53
74
  Object.defineProperty(exports, "ensureProfileHooks", { enumerable: true, get: function () { return profile_hook_injector_1.ensureProfileHooks; } });
54
75
  Object.defineProperty(exports, "ensureProfileHooksOrThrow", { enumerable: true, get: function () { return profile_hook_injector_1.ensureProfileHooksOrThrow; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/websearch/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAgBH,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,mDAO0B;AANxB,6GAAA,WAAW,OAAA;AACX,kHAAA,gBAAgB,OAAA;AAChB,wHAAA,sBAAsB,OAAA;AACtB,sHAAA,oBAAoB,OAAA;AACpB,uHAAA,qBAAqB,OAAA;AACrB,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,uDAA2F;AAAlF,+HAAA,2BAA2B,OAAA;AAAE,4HAAA,wBAAwB,OAAA;AAE9D,yBAAyB;AACzB,iEAAwF;AAA/E,2HAAA,kBAAkB,OAAA;AAAE,kIAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/websearch/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAgBH,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,mDAO0B;AANxB,6GAAA,WAAW,OAAA;AACX,kHAAA,gBAAgB,OAAA;AAChB,wHAAA,sBAAsB,OAAA;AACtB,sHAAA,oBAAoB,OAAA;AACpB,uHAAA,qBAAqB,OAAA;AACrB,wHAAA,sBAAsB,OAAA;AAGxB,wBAAwB;AACxB,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,uCAAiD;AAAxC,+GAAA,mBAAmB,OAAA;AAE5B,cAAc;AACd,iDAWyB;AAVvB,0HAAA,yBAAyB,OAAA;AACzB,0HAAA,yBAAyB,OAAA;AACzB,0HAAA,yBAAyB,OAAA;AACzB,yHAAA,wBAAwB,OAAA;AACxB,mHAAA,kBAAkB,OAAA;AAClB,4HAAA,2BAA2B,OAAA;AAC3B,yHAAA,wBAAwB,OAAA;AACxB,sHAAA,qBAAqB,OAAA;AACrB,4HAAA,2BAA2B,OAAA;AAC3B,0HAAA,yBAAyB,OAAA;AAG3B,qBAAqB;AACrB,uDAAuE;AAA9D,qIAAA,iCAAiC,OAAA;AAE1C,gBAAgB;AAChB,iCAKiB;AAJf,6GAAA,oBAAoB,OAAA;AACpB,oHAAA,2BAA2B,OAAA;AAC3B,gHAAA,uBAAuB,OAAA;AACvB,kHAAA,yBAAyB,OAAA;AAG3B,uBAAuB;AACvB,mCAMkB;AALhB,kHAAA,wBAAwB,OAAA;AACxB,4GAAA,kBAAkB,OAAA;AAClB,4GAAA,kBAAkB,OAAA;AAClB,+GAAA,qBAAqB,OAAA;AACrB,gHAAA,sBAAsB,OAAA;AAGxB,uDAA2F;AAAlF,+HAAA,2BAA2B,OAAA;AAAE,4HAAA,wBAAwB,OAAA;AAE9D,uCAAuC;AACvC,iEAAwF;AAA/E,2HAAA,kBAAkB,OAAA;AAAE,kIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * WebSearch MCP installer and ~/.claude.json provisioning.
3
+ */
4
+ export declare function getWebSearchMcpServerName(): string;
5
+ export declare function getWebSearchMcpServerPath(): string;
6
+ export declare function installWebSearchMcpServer(): boolean;
7
+ export declare function ensureWebSearchMcpConfig(): boolean;
8
+ export declare function ensureWebSearchMcp(): boolean;
9
+ export declare function syncWebSearchMcpToConfigDir(claudeConfigDir: string | undefined): boolean;
10
+ export declare function uninstallWebSearchMcpServer(): boolean;
11
+ export declare function removeWebSearchMcpConfig(): boolean;
12
+ export declare function uninstallWebSearchMcp(): boolean;
13
+ export declare function ensureWebSearchMcpOrThrow(): void;
14
+ //# sourceMappingURL=mcp-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-installer.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/mcp-installer.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+BH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AA4HD,wBAAgB,yBAAyB,IAAI,OAAO,CAuEnD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAsElD;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAW5C;AAED,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CASxF;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAerD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAWlD;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAI/C;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAShD"}
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ /**
3
+ * WebSearch MCP installer and ~/.claude.json provisioning.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ensureWebSearchMcpOrThrow = exports.uninstallWebSearchMcp = exports.removeWebSearchMcpConfig = exports.uninstallWebSearchMcpServer = exports.syncWebSearchMcpToConfigDir = exports.ensureWebSearchMcp = exports.ensureWebSearchMcpConfig = exports.installWebSearchMcpServer = exports.getWebSearchMcpServerPath = exports.getWebSearchMcpServerName = void 0;
30
+ const fs = __importStar(require("fs"));
31
+ const path = __importStar(require("path"));
32
+ const unified_config_loader_1 = require("../../config/unified-config-loader");
33
+ const config_manager_1 = require("../config-manager");
34
+ const claude_config_path_1 = require("../claude-config-path");
35
+ const ui_1 = require("../ui");
36
+ const instance_manager_1 = require("../../management/instance-manager");
37
+ const hook_installer_1 = require("./hook-installer");
38
+ const trace_1 = require("./trace");
39
+ const WEBSEARCH_MCP_SERVER = 'ccs-websearch-server.cjs';
40
+ const WEBSEARCH_MCP_SERVER_NAME = 'ccs-websearch';
41
+ function getCcsMcpDir() {
42
+ return path.join((0, config_manager_1.getCcsDir)(), 'mcp');
43
+ }
44
+ function getWebSearchMcpServerName() {
45
+ return WEBSEARCH_MCP_SERVER_NAME;
46
+ }
47
+ exports.getWebSearchMcpServerName = getWebSearchMcpServerName;
48
+ function getWebSearchMcpServerPath() {
49
+ return path.join(getCcsMcpDir(), WEBSEARCH_MCP_SERVER);
50
+ }
51
+ exports.getWebSearchMcpServerPath = getWebSearchMcpServerPath;
52
+ function hasMatchingContents(sourcePath, destinationPath) {
53
+ if (!fs.existsSync(destinationPath)) {
54
+ return false;
55
+ }
56
+ const source = fs.readFileSync(sourcePath);
57
+ try {
58
+ const destination = fs.readFileSync(destinationPath);
59
+ return source.equals(destination);
60
+ }
61
+ catch (error) {
62
+ if (process.env.CCS_DEBUG) {
63
+ console.error((0, ui_1.warn)(`Existing WebSearch MCP server is unreadable: ${error.message}`));
64
+ }
65
+ return false;
66
+ }
67
+ }
68
+ function getTempPath(targetPath) {
69
+ const suffix = `${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`;
70
+ return `${targetPath}.${suffix}.tmp`;
71
+ }
72
+ function resolveBundledServerSourcePath() {
73
+ const possiblePaths = [
74
+ path.join(__dirname, '..', '..', '..', 'lib', 'mcp', WEBSEARCH_MCP_SERVER),
75
+ path.join(__dirname, '..', '..', 'lib', 'mcp', WEBSEARCH_MCP_SERVER),
76
+ path.join(__dirname, '..', 'lib', 'mcp', WEBSEARCH_MCP_SERVER),
77
+ ];
78
+ for (const candidate of possiblePaths) {
79
+ if (fs.existsSync(candidate)) {
80
+ return candidate;
81
+ }
82
+ }
83
+ return null;
84
+ }
85
+ function readClaudeUserConfig(configPath) {
86
+ if (!fs.existsSync(configPath)) {
87
+ return {};
88
+ }
89
+ try {
90
+ const raw = fs.readFileSync(configPath, 'utf8');
91
+ const parsed = JSON.parse(raw);
92
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
93
+ return null;
94
+ }
95
+ return parsed;
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ }
101
+ function writeClaudeUserConfig(configPath, config) {
102
+ const tempPath = getTempPath(configPath);
103
+ const fileMode = fs.existsSync(configPath) ? fs.statSync(configPath).mode & 0o777 : 0o600;
104
+ try {
105
+ fs.writeFileSync(tempPath, JSON.stringify(config, null, 2) + '\n', 'utf8');
106
+ fs.chmodSync(tempPath, fileMode);
107
+ fs.renameSync(tempPath, configPath);
108
+ return true;
109
+ }
110
+ finally {
111
+ if (fs.existsSync(tempPath)) {
112
+ fs.unlinkSync(tempPath);
113
+ }
114
+ }
115
+ }
116
+ function removeManagedServerConfig(configPath) {
117
+ if (!fs.existsSync(configPath)) {
118
+ return false;
119
+ }
120
+ const config = readClaudeUserConfig(configPath);
121
+ if (config === null) {
122
+ if (process.env.CCS_DEBUG) {
123
+ console.error((0, ui_1.warn)(`Malformed Claude config prevents MCP cleanup: ${configPath}`));
124
+ }
125
+ return false;
126
+ }
127
+ const existingServers = config.mcpServers && typeof config.mcpServers === 'object' && !Array.isArray(config.mcpServers)
128
+ ? { ...config.mcpServers }
129
+ : {};
130
+ if (!(WEBSEARCH_MCP_SERVER_NAME in existingServers)) {
131
+ return false;
132
+ }
133
+ delete existingServers[WEBSEARCH_MCP_SERVER_NAME];
134
+ const nextConfig = { ...config };
135
+ if (Object.keys(existingServers).length === 0) {
136
+ delete nextConfig.mcpServers;
137
+ }
138
+ else {
139
+ nextConfig.mcpServers = existingServers;
140
+ }
141
+ try {
142
+ writeClaudeUserConfig(configPath, nextConfig);
143
+ if (process.env.CCS_DEBUG) {
144
+ console.error((0, ui_1.info)(`Removed WebSearch MCP config from ${configPath}`));
145
+ }
146
+ return true;
147
+ }
148
+ catch (error) {
149
+ if (process.env.CCS_DEBUG) {
150
+ console.error((0, ui_1.warn)(`Failed to remove WebSearch MCP config from ${configPath}: ${error.message}`));
151
+ }
152
+ return false;
153
+ }
154
+ }
155
+ function installWebSearchMcpServer() {
156
+ const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
157
+ if (!wsConfig.enabled) {
158
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_install_skipped', { reason: 'disabled' });
159
+ return false;
160
+ }
161
+ if (!(0, hook_installer_1.installWebSearchHook)()) {
162
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_install_failed', { reason: 'hook_unavailable' });
163
+ if (process.env.CCS_DEBUG) {
164
+ console.error((0, ui_1.warn)('WebSearch MCP server install skipped because hook runtime is unavailable'));
165
+ }
166
+ return false;
167
+ }
168
+ const sourcePath = resolveBundledServerSourcePath();
169
+ if (!sourcePath) {
170
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_install_failed', { reason: 'source_missing' });
171
+ if (process.env.CCS_DEBUG) {
172
+ console.error((0, ui_1.warn)(`WebSearch MCP server source not found: ${WEBSEARCH_MCP_SERVER}`));
173
+ }
174
+ return false;
175
+ }
176
+ const mcpDir = getCcsMcpDir();
177
+ if (!fs.existsSync(mcpDir)) {
178
+ fs.mkdirSync(mcpDir, { recursive: true, mode: 0o700 });
179
+ }
180
+ const serverPath = getWebSearchMcpServerPath();
181
+ if (hasMatchingContents(sourcePath, serverPath)) {
182
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_install_ready', { serverPath });
183
+ return true;
184
+ }
185
+ const tempPath = getTempPath(serverPath);
186
+ try {
187
+ fs.copyFileSync(sourcePath, tempPath);
188
+ fs.chmodSync(tempPath, 0o755);
189
+ try {
190
+ fs.renameSync(tempPath, serverPath);
191
+ }
192
+ catch (renameError) {
193
+ const errorCode = renameError.code;
194
+ if (errorCode !== 'EEXIST' && errorCode !== 'EPERM') {
195
+ throw renameError;
196
+ }
197
+ if (!hasMatchingContents(sourcePath, serverPath)) {
198
+ fs.copyFileSync(tempPath, serverPath);
199
+ fs.chmodSync(serverPath, 0o755);
200
+ }
201
+ }
202
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_install_ready', { serverPath });
203
+ return true;
204
+ }
205
+ catch (error) {
206
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_install_failed', {
207
+ reason: 'copy_failed',
208
+ error: error.message,
209
+ });
210
+ if (process.env.CCS_DEBUG) {
211
+ console.error((0, ui_1.warn)(`Failed to install WebSearch MCP server: ${error.message}`));
212
+ }
213
+ return false;
214
+ }
215
+ finally {
216
+ if (fs.existsSync(tempPath)) {
217
+ fs.unlinkSync(tempPath);
218
+ }
219
+ }
220
+ }
221
+ exports.installWebSearchMcpServer = installWebSearchMcpServer;
222
+ function ensureWebSearchMcpConfig() {
223
+ const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
224
+ if (!wsConfig.enabled) {
225
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_config_skipped', { reason: 'disabled' });
226
+ return false;
227
+ }
228
+ const claudeUserConfigPath = (0, claude_config_path_1.getClaudeUserConfigPath)();
229
+ const claudeUserConfigDir = path.dirname(claudeUserConfigPath);
230
+ const config = readClaudeUserConfig(claudeUserConfigPath);
231
+ if (config === null) {
232
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_config_failed', { reason: 'malformed_user_config' });
233
+ if (process.env.CCS_DEBUG) {
234
+ console.error((0, ui_1.warn)('Malformed ~/.claude.json prevents WebSearch MCP provisioning'));
235
+ }
236
+ return false;
237
+ }
238
+ if (!fs.existsSync(claudeUserConfigDir)) {
239
+ fs.mkdirSync(claudeUserConfigDir, { recursive: true, mode: 0o700 });
240
+ }
241
+ const existingServers = config.mcpServers && typeof config.mcpServers === 'object' && !Array.isArray(config.mcpServers)
242
+ ? config.mcpServers
243
+ : {};
244
+ const desiredServerConfig = {
245
+ type: 'stdio',
246
+ command: 'node',
247
+ args: [getWebSearchMcpServerPath()],
248
+ env: {},
249
+ };
250
+ const currentConfig = existingServers[WEBSEARCH_MCP_SERVER_NAME];
251
+ if (typeof currentConfig === 'object' &&
252
+ currentConfig !== null &&
253
+ JSON.stringify(currentConfig) === JSON.stringify(desiredServerConfig)) {
254
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_config_ready', { configPath: claudeUserConfigPath });
255
+ return true;
256
+ }
257
+ const nextConfig = {
258
+ ...config,
259
+ mcpServers: {
260
+ ...existingServers,
261
+ [WEBSEARCH_MCP_SERVER_NAME]: desiredServerConfig,
262
+ },
263
+ };
264
+ try {
265
+ writeClaudeUserConfig(claudeUserConfigPath, nextConfig);
266
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_config_ready', { configPath: claudeUserConfigPath });
267
+ if (process.env.CCS_DEBUG) {
268
+ console.error((0, ui_1.info)(`Ensured WebSearch MCP config in ${claudeUserConfigPath}`));
269
+ }
270
+ return true;
271
+ }
272
+ catch (error) {
273
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_config_failed', {
274
+ reason: 'write_failed',
275
+ configPath: claudeUserConfigPath,
276
+ error: error.message,
277
+ });
278
+ if (process.env.CCS_DEBUG) {
279
+ console.error((0, ui_1.warn)(`Failed to update ~/.claude.json: ${error.message}`));
280
+ }
281
+ return false;
282
+ }
283
+ }
284
+ exports.ensureWebSearchMcpConfig = ensureWebSearchMcpConfig;
285
+ function ensureWebSearchMcp() {
286
+ const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
287
+ if (!wsConfig.enabled) {
288
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_ensure_skipped', { reason: 'disabled' });
289
+ return false;
290
+ }
291
+ const installed = installWebSearchMcpServer();
292
+ const configured = installed && ensureWebSearchMcpConfig();
293
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_ensure_result', { installed, configured });
294
+ return installed && configured;
295
+ }
296
+ exports.ensureWebSearchMcp = ensureWebSearchMcp;
297
+ function syncWebSearchMcpToConfigDir(claudeConfigDir) {
298
+ if (!claudeConfigDir) {
299
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_sync_skipped', { reason: 'missing_config_dir' });
300
+ return false;
301
+ }
302
+ const synced = new instance_manager_1.InstanceManager().syncMcpServers(claudeConfigDir);
303
+ (0, trace_1.appendWebSearchTrace)('websearch_mcp_sync_result', { claudeConfigDir, synced });
304
+ return synced;
305
+ }
306
+ exports.syncWebSearchMcpToConfigDir = syncWebSearchMcpToConfigDir;
307
+ function uninstallWebSearchMcpServer() {
308
+ const serverPath = getWebSearchMcpServerPath();
309
+ if (!fs.existsSync(serverPath)) {
310
+ return false;
311
+ }
312
+ try {
313
+ fs.unlinkSync(serverPath);
314
+ return true;
315
+ }
316
+ catch (error) {
317
+ if (process.env.CCS_DEBUG) {
318
+ console.error((0, ui_1.warn)(`Failed to remove WebSearch MCP server: ${error.message}`));
319
+ }
320
+ return false;
321
+ }
322
+ }
323
+ exports.uninstallWebSearchMcpServer = uninstallWebSearchMcpServer;
324
+ function removeWebSearchMcpConfig() {
325
+ let removed = removeManagedServerConfig((0, claude_config_path_1.getClaudeUserConfigPath)());
326
+ const instanceManager = new instance_manager_1.InstanceManager();
327
+ for (const instanceName of instanceManager.listInstances()) {
328
+ const instancePath = instanceManager.getInstancePath(instanceName);
329
+ const instanceClaudeConfigPath = path.join(instancePath, '.claude.json');
330
+ removed = removeManagedServerConfig(instanceClaudeConfigPath) || removed;
331
+ }
332
+ return removed;
333
+ }
334
+ exports.removeWebSearchMcpConfig = removeWebSearchMcpConfig;
335
+ function uninstallWebSearchMcp() {
336
+ const removedConfig = removeWebSearchMcpConfig();
337
+ const removedServer = uninstallWebSearchMcpServer();
338
+ return removedConfig || removedServer;
339
+ }
340
+ exports.uninstallWebSearchMcp = uninstallWebSearchMcp;
341
+ function ensureWebSearchMcpOrThrow() {
342
+ const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
343
+ if (!wsConfig.enabled) {
344
+ return;
345
+ }
346
+ if (!ensureWebSearchMcp()) {
347
+ throw new Error('WebSearch is enabled, but CCS could not prepare the local WebSearch tool.');
348
+ }
349
+ }
350
+ exports.ensureWebSearchMcpOrThrow = ensureWebSearchMcpOrThrow;
351
+ //# sourceMappingURL=mcp-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-installer.js","sourceRoot":"","sources":["../../../src/utils/websearch/mcp-installer.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * Profile Hook Injector
3
3
  *
4
- * Injects WebSearch hooks into per-profile settings files.
5
- * This replaces the global ~/.claude/settings.json approach.
4
+ * Injects the legacy WebSearch compatibility hook into per-profile settings files.
5
+ * The first-class runtime now uses the CCS-managed MCP server; these hooks remain
6
+ * for compatibility and migration safety only.
6
7
  *
7
8
  * @module utils/websearch/profile-hook-injector
8
9
  */
9
10
  /**
10
- * Ensure WebSearch hook is configured in profile's settings file
11
+ * Ensure the legacy WebSearch compatibility hook is configured in a profile's
12
+ * settings file when that path is still needed.
11
13
  *
12
14
  * @param profileName - Name of the profile (e.g., 'agy', 'gemini', 'glm')
13
15
  * @returns true if hook is configured (existing or newly added)
@@ -1 +1 @@
1
- {"version":3,"file":"profile-hook-injector.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsEH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA8G/D;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAWnE"}
1
+ {"version":3,"file":"profile-hook-injector.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsEH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA8G/D;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAWnE"}
@@ -2,8 +2,9 @@
2
2
  /**
3
3
  * Profile Hook Injector
4
4
  *
5
- * Injects WebSearch hooks into per-profile settings files.
6
- * This replaces the global ~/.claude/settings.json approach.
5
+ * Injects the legacy WebSearch compatibility hook into per-profile settings files.
6
+ * The first-class runtime now uses the CCS-managed MCP server; these hooks remain
7
+ * for compatibility and migration safety only.
7
8
  *
8
9
  * @module utils/websearch/profile-hook-injector
9
10
  */
@@ -96,7 +97,8 @@ function migrateGlobalHook() {
96
97
  }
97
98
  }
98
99
  /**
99
- * Ensure WebSearch hook is configured in profile's settings file
100
+ * Ensure the legacy WebSearch compatibility hook is configured in a profile's
101
+ * settings file when that path is still needed.
100
102
  *
101
103
  * @param profileName - Name of the profile (e.g., 'agy', 'gemini', 'glm')
102
104
  * @returns true if hook is configured (existing or newly added)
@@ -1 +1 @@
1
- {"version":3,"file":"profile-hook-injector.js","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-hook-injector.js","sourceRoot":"","sources":["../../../src/utils/websearch/profile-hook-injector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAoEjE;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,EAAE,CAsE7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAW7C;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,gBAAgB,EAAE,GAC5B,eAAe,CAmCjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAIvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAiB7C"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwJjE;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,EAAE,CAyE7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAW7C;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,gBAAgB,EAAE,GAC5B,eAAe,CAmCjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAIvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAiB7C"}
@@ -8,15 +8,80 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.displayWebSearchStatus = exports.getWebSearchReadiness = exports.buildWebSearchReadiness = exports.getCliInstallHints = exports.hasAnyWebSearchCli = exports.getWebSearchCliProviders = void 0;
11
+ const fs_1 = require("fs");
12
+ const path_1 = require("path");
11
13
  const ui_1 = require("../ui");
12
14
  const unified_config_loader_1 = require("../../config/unified-config-loader");
15
+ const config_manager_1 = require("../config-manager");
13
16
  const gemini_cli_1 = require("./gemini-cli");
14
17
  const grok_cli_1 = require("./grok-cli");
15
18
  const opencode_cli_1 = require("./opencode-cli");
16
19
  const provider_secrets_1 = require("./provider-secrets");
20
+ const PROVIDER_STATE_FILE = 'websearch-provider-state.json';
17
21
  function hasEnvValue(name) {
18
22
  return (process.env[name] || '').trim().length > 0;
19
23
  }
24
+ function getProviderStatePath() {
25
+ return (0, path_1.join)((0, config_manager_1.getCcsDir)(), 'cache', PROVIDER_STATE_FILE);
26
+ }
27
+ function readProviderCooldowns(now = Date.now()) {
28
+ try {
29
+ const statePath = getProviderStatePath();
30
+ if (!(0, fs_1.existsSync)(statePath)) {
31
+ return {};
32
+ }
33
+ const parsed = JSON.parse((0, fs_1.readFileSync)(statePath, 'utf8'));
34
+ const nextCooldowns = {};
35
+ for (const [providerId, entry] of Object.entries(parsed.cooldowns || {})) {
36
+ const until = Number.parseInt(String(entry?.until || ''), 10);
37
+ if (!Number.isFinite(until) || until <= now) {
38
+ continue;
39
+ }
40
+ nextCooldowns[providerId] = {
41
+ reason: typeof entry?.reason === 'string' ? entry.reason : 'rate_limited',
42
+ until,
43
+ };
44
+ }
45
+ return nextCooldowns;
46
+ }
47
+ catch {
48
+ return {};
49
+ }
50
+ }
51
+ function formatCooldownDuration(until, now = Date.now()) {
52
+ const remainingSec = Math.max(1, Math.ceil((until - now) / 1000));
53
+ if (remainingSec >= 3600) {
54
+ return `~${Math.ceil(remainingSec / 3600)}h`;
55
+ }
56
+ if (remainingSec >= 60) {
57
+ return `~${Math.ceil(remainingSec / 60)}m`;
58
+ }
59
+ return `~${remainingSec}s`;
60
+ }
61
+ function formatCooldownReason(reason) {
62
+ switch (reason) {
63
+ case 'quota_exhausted':
64
+ return 'quota exhaustion';
65
+ case 'rate_limited':
66
+ return 'rate limiting';
67
+ default:
68
+ return 'a temporary provider error';
69
+ }
70
+ }
71
+ function applyCooldownStatus(provider, cooldowns, now = Date.now()) {
72
+ if (!(provider.enabled && provider.available)) {
73
+ return provider;
74
+ }
75
+ const cooldown = cooldowns[provider.id];
76
+ if (!cooldown) {
77
+ return provider;
78
+ }
79
+ return {
80
+ ...provider,
81
+ available: false,
82
+ detail: `Cooling down ${formatCooldownDuration(cooldown.until, now)} after ${formatCooldownReason(cooldown.reason)}`,
83
+ };
84
+ }
20
85
  function getLegacyProviderStatuses() {
21
86
  const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
22
87
  const geminiStatus = (0, gemini_cli_1.getGeminiCliStatus)();
@@ -83,6 +148,7 @@ function getLegacyProviderStatuses() {
83
148
  function getWebSearchCliProviders() {
84
149
  const wsConfig = (0, unified_config_loader_1.getWebSearchConfig)();
85
150
  const apiKeyStates = (0, provider_secrets_1.getWebSearchApiKeyStates)();
151
+ const cooldowns = readProviderCooldowns();
86
152
  const providers = [
87
153
  {
88
154
  id: 'exa',
@@ -148,7 +214,7 @@ function getWebSearchCliProviders() {
148
214
  : 'Set BRAVE_API_KEY',
149
215
  },
150
216
  ];
151
- return [...providers, ...getLegacyProviderStatuses()];
217
+ return [...providers, ...getLegacyProviderStatuses()].map((provider) => applyCooldownStatus(provider, cooldowns));
152
218
  }
153
219
  exports.getWebSearchCliProviders = getWebSearchCliProviders;
154
220
  /**