@kaitranntt/ccs 7.68.1-dev.9 → 7.68.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.
- package/dist/auth/commands/create-command-env.d.ts +0 -1
- package/dist/auth/commands/create-command-env.d.ts.map +1 -1
- package/dist/ccs.js +2 -55
- package/dist/ccs.js.map +1 -1
- package/dist/channels/official-channels-runtime.d.ts +0 -1
- package/dist/channels/official-channels-runtime.d.ts.map +1 -1
- package/dist/channels/official-channels-store.d.ts +0 -1
- package/dist/channels/official-channels-store.d.ts.map +1 -1
- package/dist/cliproxy/base-config-loader.d.ts +0 -1
- package/dist/cliproxy/base-config-loader.d.ts.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts +0 -1
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
- package/dist/cliproxy/config/extended-context-config.d.ts +0 -1
- package/dist/cliproxy/config/extended-context-config.d.ts.map +1 -1
- package/dist/cliproxy/config/thinking-config.d.ts +0 -1
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts +0 -2
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +1 -2
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +1 -28
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/model-id-normalizer.d.ts +0 -1
- package/dist/cliproxy/model-id-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/routing-strategy-http.d.ts +0 -1
- package/dist/cliproxy/routing-strategy-http.d.ts.map +1 -1
- package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
- package/dist/cliproxy/tool-sanitization-proxy.js +3 -0
- package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
- package/dist/cliproxy/types.d.ts +0 -2
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/commands/cliproxy/catalog-subcommand.d.ts +0 -6
- package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/catalog-subcommand.js +1 -39
- package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/help-subcommand.js +0 -1
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
- package/dist/commands/cliproxy/index.d.ts.map +1 -1
- package/dist/commands/cliproxy/index.js +0 -6
- package/dist/commands/cliproxy/index.js.map +1 -1
- package/dist/commands/command-catalog.d.ts +1 -1
- package/dist/commands/command-catalog.d.ts.map +1 -1
- package/dist/commands/cursor-command-display.d.ts +0 -2
- package/dist/commands/cursor-command-display.d.ts.map +1 -1
- package/dist/commands/cursor-command-display.js +3 -24
- package/dist/commands/cursor-command-display.js.map +1 -1
- package/dist/commands/cursor-command.d.ts.map +1 -1
- package/dist/commands/cursor-command.js +1 -31
- package/dist/commands/cursor-command.js.map +1 -1
- package/dist/config/migration-manager.d.ts.map +1 -1
- package/dist/config/migration-manager.js +1 -2
- package/dist/config/migration-manager.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +3 -8
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +7 -20
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +2 -15
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +3 -8
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/cursor/constants.d.ts +1 -1
- package/dist/cursor/constants.d.ts.map +1 -1
- package/dist/cursor/constants.js +0 -1
- package/dist/cursor/constants.js.map +1 -1
- package/dist/cursor/cursor-anthropic-response.d.ts +0 -1
- package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -1
- package/dist/cursor/cursor-auth.d.ts +0 -1
- package/dist/cursor/cursor-auth.d.ts.map +1 -1
- package/dist/cursor/cursor-auth.js +32 -154
- package/dist/cursor/cursor-auth.js.map +1 -1
- package/dist/cursor/cursor-executor.d.ts +1 -2
- package/dist/cursor/cursor-executor.d.ts.map +1 -1
- package/dist/cursor/cursor-executor.js +160 -295
- package/dist/cursor/cursor-executor.js.map +1 -1
- package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -1
- package/dist/cursor/cursor-protobuf-decoder.js +3 -1
- package/dist/cursor/cursor-protobuf-decoder.js.map +1 -1
- package/dist/cursor/cursor-protobuf-schema.d.ts +3 -12
- package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -1
- package/dist/cursor/cursor-protobuf-schema.js +5 -23
- package/dist/cursor/cursor-protobuf-schema.js.map +1 -1
- package/dist/cursor/cursor-protobuf.d.ts +1 -1
- package/dist/cursor/cursor-protobuf.d.ts.map +1 -1
- package/dist/cursor/cursor-protobuf.js +4 -2
- package/dist/cursor/cursor-protobuf.js.map +1 -1
- package/dist/cursor/cursor-stream-parser.d.ts +0 -10
- package/dist/cursor/cursor-stream-parser.d.ts.map +1 -1
- package/dist/cursor/cursor-stream-parser.js +10 -106
- package/dist/cursor/cursor-stream-parser.js.map +1 -1
- package/dist/cursor/index.d.ts +0 -1
- package/dist/cursor/index.d.ts.map +1 -1
- package/dist/cursor/index.js +1 -3
- package/dist/cursor/index.js.map +1 -1
- package/dist/cursor/types.d.ts +0 -6
- package/dist/cursor/types.d.ts.map +1 -1
- package/dist/docker/docker-executor.d.ts +0 -1
- package/dist/docker/docker-executor.d.ts.map +1 -1
- package/dist/management/instance-manager.d.ts.map +1 -1
- package/dist/management/instance-manager.js +2 -5
- package/dist/management/instance-manager.js.map +1 -1
- package/dist/targets/claude-adapter.d.ts +1 -6
- package/dist/targets/claude-adapter.d.ts.map +1 -1
- package/dist/targets/claude-adapter.js +2 -6
- package/dist/targets/claude-adapter.js.map +1 -1
- package/dist/targets/codex-adapter.d.ts +0 -1
- package/dist/targets/codex-adapter.d.ts.map +1 -1
- package/dist/targets/codex-adapter.js +8 -12
- package/dist/targets/codex-adapter.js.map +1 -1
- package/dist/targets/droid-adapter.d.ts +1 -3
- package/dist/targets/droid-adapter.d.ts.map +1 -1
- package/dist/targets/droid-adapter.js +2 -3
- package/dist/targets/droid-adapter.js.map +1 -1
- package/dist/targets/target-adapter.d.ts +0 -5
- package/dist/targets/target-adapter.d.ts.map +1 -1
- package/dist/types/cli.d.ts +0 -1
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/ui/assets/{accounts-D9eEaNx9.js → accounts-DjL3iVZW.js} +1 -1
- package/dist/ui/assets/{alert-dialog-QyEXocpn.js → alert-dialog-Tc_D1a_B.js} +1 -1
- package/dist/ui/assets/{api-7vQe0xOg.js → api-CUtkvXmX.js} +1 -1
- package/dist/ui/assets/{auth-section-BszF77uT.js → auth-section-CuKWQHC7.js} +1 -1
- package/dist/ui/assets/{backups-section-D6RgaOx1.js → backups-section-BKW2pbb9.js} +1 -1
- package/dist/ui/assets/{channels-B1vgnNJX.js → channels-DvWJMdaq.js} +1 -1
- package/dist/ui/assets/{checkbox-Dzwkj_Pg.js → checkbox-B0hZxMK5.js} +1 -1
- package/dist/ui/assets/{claude-extension-CKO4bJ22.js → claude-extension-Dfqu-rev.js} +1 -1
- package/dist/ui/assets/{cliproxy-kHd-oC5W.js → cliproxy-C9RxW-I8.js} +1 -1
- package/dist/ui/assets/{cliproxy-ai-providers-CmbFYVoR.js → cliproxy-ai-providers-BXLuuxNf.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-M8ZfUq3C.js → cliproxy-control-panel-aQ7cCc2U.js} +1 -1
- package/dist/ui/assets/{codex-BJ0RdMuh.js → codex-aq4RI6_n.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-BlSaX2gK.js → confirm-dialog-CpDk6eu4.js} +1 -1
- package/dist/ui/assets/{copilot-NJKZQXQ_.js → copilot-CQRpGXvY.js} +1 -1
- package/dist/ui/assets/cursor-BpXPf6qi.js +1 -0
- package/dist/ui/assets/{droid-B9u9ZB-a.js → droid-Cgx-yLjy.js} +1 -1
- package/dist/ui/assets/{globalenv-section-DoX37DqB.js → globalenv-section-DsNqG1yB.js} +1 -1
- package/dist/ui/assets/{health-D_gdcxnc.js → health-BY-O-JcA.js} +1 -1
- package/dist/ui/assets/index-BmSzf0T9.js +72 -0
- package/dist/ui/assets/{index-DFEMq3KP.js → index-CLGiPB3A.js} +1 -1
- package/dist/ui/assets/{index-CTGpqIx6.js → index-Cet36v1V.js} +1 -1
- package/dist/ui/assets/index-DH6L6ybH.js +1 -0
- package/dist/ui/assets/{index-BNU4Hhe_.js → index-DsCjnpco.js} +1 -1
- package/dist/ui/assets/{index-DoVPk3vW.js → index-TQFuDZdB.js} +1 -1
- package/dist/ui/assets/index-teLjoh2T.css +1 -0
- package/dist/ui/assets/{logs-DtH4YMt4.js → logs-D5ro-pc7.js} +1 -1
- package/dist/ui/assets/{masked-input-C2H-Ax0Z.js → masked-input-h0XkMSwB.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-BOrsn86w.js → proxy-status-widget-yBdrFeb7.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-WxTn7-hS.js → raw-json-settings-editor-panel-Cb7ZInQV.js} +1 -1
- package/dist/ui/assets/{searchable-select-1zOULoec.js → searchable-select-D4xr5xKS.js} +1 -1
- package/dist/ui/assets/{separator-BCfZ54mZ.js → separator-gw5BjIpP.js} +1 -1
- package/dist/ui/assets/{shared-DlTbnc9n.js → shared-C-VeA1Z9.js} +1 -1
- package/dist/ui/assets/{table-Bx2cnkWN.js → table-Bd4isC18.js} +1 -1
- package/dist/ui/assets/{updates-SiZKOnUD.js → updates-DiK8I67C.js} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/utils/claude-detector.d.ts +0 -1
- package/dist/utils/claude-detector.d.ts.map +1 -1
- package/dist/utils/claude-spawner.d.ts +0 -1
- package/dist/utils/claude-spawner.d.ts.map +1 -1
- package/dist/utils/hooks/image-analysis-runtime-status.js +5 -5
- package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
- package/dist/utils/image-analysis/claude-tool-args.d.ts +0 -3
- package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -1
- package/dist/utils/image-analysis/claude-tool-args.js +47 -21
- package/dist/utils/image-analysis/claude-tool-args.js.map +1 -1
- package/dist/utils/package-manager-detector.d.ts +0 -1
- package/dist/utils/package-manager-detector.d.ts.map +1 -1
- package/dist/utils/shell-executor.d.ts +0 -1
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/websearch/claude-tool-args.d.ts +0 -7
- package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
- package/dist/utils/websearch/claude-tool-args.js +50 -27
- package/dist/utils/websearch/claude-tool-args.js.map +1 -1
- package/dist/utils/websearch/hook-env.d.ts.map +1 -1
- package/dist/utils/websearch/hook-env.js +1 -19
- package/dist/utils/websearch/hook-env.js.map +1 -1
- package/dist/utils/websearch/status.d.ts +1 -1
- package/dist/utils/websearch/status.d.ts.map +1 -1
- package/dist/utils/websearch/status.js +12 -33
- package/dist/utils/websearch/status.js.map +1 -1
- package/dist/utils/websearch/trace.d.ts +0 -1
- package/dist/utils/websearch/trace.d.ts.map +1 -1
- package/dist/utils/websearch/trace.js +5 -20
- package/dist/utils/websearch/trace.js.map +1 -1
- package/dist/utils/websearch/types.d.ts +2 -12
- package/dist/utils/websearch/types.d.ts.map +1 -1
- package/dist/utils/websearch/types.js +0 -38
- package/dist/utils/websearch/types.js.map +1 -1
- package/dist/web-server/health/websearch-checks.js +1 -1
- package/dist/web-server/health/websearch-checks.js.map +1 -1
- package/dist/web-server/middleware/auth-middleware.d.ts +1 -0
- package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-local-proxy.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-local-proxy.js +6 -26
- package/dist/web-server/routes/cliproxy-local-proxy.js.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +1 -8
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/cursor-routes.d.ts +0 -2
- package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cursor-routes.js +2 -44
- package/dist/web-server/routes/cursor-routes.js.map +1 -1
- package/dist/web-server/routes/websearch-routes.d.ts.map +1 -1
- package/dist/web-server/routes/websearch-routes.js +0 -37
- package/dist/web-server/routes/websearch-routes.js.map +1 -1
- package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
- package/dist/web-server/services/cliproxy-dashboard-install-service.js +0 -14
- package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
- package/dist/web-server/services/codex-dashboard-service.d.ts +0 -1
- package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
- package/dist/web-server/services/droid-dashboard-service.d.ts +0 -1
- package/dist/web-server/services/droid-dashboard-service.d.ts.map +1 -1
- package/lib/hooks/websearch-transformer.cjs +0 -136
- package/lib/mcp/ccs-websearch-server.cjs +1 -1
- package/package.json +1 -2
- package/dist/cursor/cursor-runtime-probe.d.ts +0 -12
- package/dist/cursor/cursor-runtime-probe.d.ts.map +0 -1
- package/dist/cursor/cursor-runtime-probe.js +0 -220
- package/dist/cursor/cursor-runtime-probe.js.map +0 -1
- package/dist/docker/supervisord-lifecycle.d.ts +0 -17
- package/dist/docker/supervisord-lifecycle.d.ts.map +0 -1
- package/dist/docker/supervisord-lifecycle.js +0 -58
- package/dist/docker/supervisord-lifecycle.js.map +0 -1
- package/dist/ui/assets/cursor-BrcDgu6X.js +0 -1
- package/dist/ui/assets/index-Cu6e0-ev.css +0 -1
- package/dist/ui/assets/index-DOn6k1jF.js +0 -72
- package/dist/ui/assets/index-h08p9xL5.js +0 -1
- package/dist/utils/browser/chrome-reuse.d.ts +0 -17
- package/dist/utils/browser/chrome-reuse.d.ts.map +0 -1
- package/dist/utils/browser/chrome-reuse.js +0 -205
- package/dist/utils/browser/chrome-reuse.js.map +0 -1
- package/dist/utils/browser/claude-tool-args.d.ts +0 -2
- package/dist/utils/browser/claude-tool-args.d.ts.map +0 -1
- package/dist/utils/browser/claude-tool-args.js +0 -18
- package/dist/utils/browser/claude-tool-args.js.map +0 -1
- package/dist/utils/browser/index.d.ts +0 -8
- package/dist/utils/browser/index.d.ts.map +0 -1
- package/dist/utils/browser/index.js +0 -24
- package/dist/utils/browser/index.js.map +0 -1
- package/dist/utils/browser/mcp-installer.d.ts +0 -14
- package/dist/utils/browser/mcp-installer.d.ts.map +0 -1
- package/dist/utils/browser/mcp-installer.js +0 -356
- package/dist/utils/browser/mcp-installer.js.map +0 -1
- package/dist/utils/browser-codex-overrides.d.ts +0 -3
- package/dist/utils/browser-codex-overrides.d.ts.map +0 -1
- package/dist/utils/browser-codex-overrides.js +0 -29
- package/dist/utils/browser-codex-overrides.js.map +0 -1
- package/dist/utils/claude-tool-args.d.ts +0 -7
- package/dist/utils/claude-tool-args.d.ts.map +0 -1
- package/dist/utils/claude-tool-args.js +0 -43
- package/dist/utils/claude-tool-args.js.map +0 -1
- package/dist/utils/prompt-injection-strategy.d.ts +0 -54
- package/dist/utils/prompt-injection-strategy.d.ts.map +0 -1
- package/dist/utils/prompt-injection-strategy.js +0 -128
- package/dist/utils/prompt-injection-strategy.js.map +0 -1
- package/lib/mcp/ccs-browser-server.cjs +0 -877
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor Routes - Cursor IDE integration via cursor proxy daemon
|
|
3
3
|
*/
|
|
4
|
-
import { autoDetectTokens } from '../../cursor';
|
|
5
4
|
declare const router: import("express-serve-static-core").Router;
|
|
6
5
|
interface DaemonStartPreconditionInput {
|
|
7
6
|
enabled: boolean;
|
|
@@ -12,7 +11,6 @@ interface DaemonStartPreconditionError {
|
|
|
12
11
|
status: number;
|
|
13
12
|
error: string;
|
|
14
13
|
}
|
|
15
|
-
export declare function getAutoDetectFailureStatus(reason?: ReturnType<typeof autoDetectTokens>['reason']): number;
|
|
16
14
|
export declare function getDaemonStartPreconditionError(input: DaemonStartPreconditionInput): DaemonStartPreconditionError | null;
|
|
17
15
|
export default router;
|
|
18
16
|
//# sourceMappingURL=cursor-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-routes.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cursor-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,QAAA,MAAM,MAAM,4CAAW,CAAC;AAExB,UAAU,4BAA4B;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,4BAA4B,GAClC,4BAA4B,GAAG,IAAI,CAuBrC;AAiJD,eAAe,MAAM,CAAC"}
|
|
@@ -6,37 +6,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.getDaemonStartPreconditionError =
|
|
9
|
+
exports.getDaemonStartPreconditionError = void 0;
|
|
10
10
|
const express_1 = require("express");
|
|
11
11
|
const cursor_1 = require("../../cursor");
|
|
12
12
|
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
13
13
|
const cursor_settings_routes_1 = __importDefault(require("./cursor-settings-routes"));
|
|
14
14
|
const router = (0, express_1.Router)();
|
|
15
|
-
function getAutoDetectFailureStatus(reason) {
|
|
16
|
-
switch (reason) {
|
|
17
|
-
case 'sqlite_unavailable':
|
|
18
|
-
return 503;
|
|
19
|
-
case 'db_query_failed':
|
|
20
|
-
return 500;
|
|
21
|
-
case 'invalid_token_format':
|
|
22
|
-
return 400;
|
|
23
|
-
default:
|
|
24
|
-
return 404;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.getAutoDetectFailureStatus = getAutoDetectFailureStatus;
|
|
28
|
-
function getPublicAutoDetectError(result) {
|
|
29
|
-
switch (result.reason) {
|
|
30
|
-
case 'db_not_found':
|
|
31
|
-
return 'Cursor state database not found on this host.';
|
|
32
|
-
case 'sqlite_unavailable':
|
|
33
|
-
return 'Cursor state database was found, but sqlite3 is not available in PATH.';
|
|
34
|
-
case 'db_query_failed':
|
|
35
|
-
return 'Cursor state database was found, but CCS could not query it.';
|
|
36
|
-
default:
|
|
37
|
-
return result.error ?? 'Token not found';
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
15
|
function getDaemonStartPreconditionError(input) {
|
|
41
16
|
if (!input.enabled) {
|
|
42
17
|
return {
|
|
@@ -120,11 +95,7 @@ router.post('/auth/auto-detect', async (_req, res) => {
|
|
|
120
95
|
try {
|
|
121
96
|
const result = (0, cursor_1.autoDetectTokens)();
|
|
122
97
|
if (!result.found || !result.accessToken || !result.machineId) {
|
|
123
|
-
|
|
124
|
-
res.status(status).json({
|
|
125
|
-
error: getPublicAutoDetectError(result),
|
|
126
|
-
reason: result.reason ?? null,
|
|
127
|
-
});
|
|
98
|
+
res.status(404).json({ error: result.error ?? 'Token not found' });
|
|
128
99
|
return;
|
|
129
100
|
}
|
|
130
101
|
// Save credentials
|
|
@@ -153,19 +124,6 @@ router.get('/models', async (_req, res) => {
|
|
|
153
124
|
res.status(500).json({ error: error.message });
|
|
154
125
|
}
|
|
155
126
|
});
|
|
156
|
-
/**
|
|
157
|
-
* POST /api/cursor/probe - Run a live authenticated runtime probe
|
|
158
|
-
*/
|
|
159
|
-
router.post('/probe', async (_req, res) => {
|
|
160
|
-
try {
|
|
161
|
-
const cursorConfig = (0, unified_config_loader_1.getCursorConfig)();
|
|
162
|
-
const result = await (0, cursor_1.probeCursorRuntime)(cursorConfig);
|
|
163
|
-
res.status(result.status).json(result);
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
res.status(500).json({ error: error.message });
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
127
|
/**
|
|
170
128
|
* POST /api/cursor/daemon/start - Start cursor proxy daemon
|
|
171
129
|
* Path matches copilot convention: /api/{provider}/daemon/{action}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-routes.js","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-routes.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAGH,qCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"cursor-routes.js","sourceRoot":"","sources":["../../../src/web-server/routes/cursor-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websearch-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/websearch-routes.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"websearch-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/websearch-routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,QAAA,MAAM,MAAM,4CAAW,CAAC;AA+MxB,eAAe,MAAM,CAAC"}
|
|
@@ -7,20 +7,12 @@ const express_1 = require("express");
|
|
|
7
7
|
const unified_config_loader_1 = require("../../config/unified-config-loader");
|
|
8
8
|
const websearch_manager_1 = require("../../utils/websearch-manager");
|
|
9
9
|
const provider_secrets_1 = require("../../utils/websearch/provider-secrets");
|
|
10
|
-
const types_1 = require("../../utils/websearch/types");
|
|
11
10
|
const auth_middleware_1 = require("../middleware/auth-middleware");
|
|
12
11
|
const router = (0, express_1.Router)();
|
|
13
12
|
const WEBSEARCH_LOCAL_ACCESS_ERROR = 'WebSearch endpoints require localhost access when dashboard auth is disabled.';
|
|
14
|
-
const DEFAULT_WEBSEARCH_MAX_RESULTS = 5;
|
|
15
|
-
const MAX_WEBSEARCH_MAX_RESULTS = 10;
|
|
16
13
|
function isWebSearchApiKeyProviderId(value) {
|
|
17
14
|
return Object.prototype.hasOwnProperty.call(provider_secrets_1.WEBSEARCH_API_KEY_PROVIDERS, value);
|
|
18
15
|
}
|
|
19
|
-
function clampWebSearchMaxResults(value, fallback) {
|
|
20
|
-
const candidate = Number.isFinite(value) ? value : fallback;
|
|
21
|
-
const normalized = Number.isFinite(candidate) ? candidate : DEFAULT_WEBSEARCH_MAX_RESULTS;
|
|
22
|
-
return Math.max(1, Math.min(MAX_WEBSEARCH_MAX_RESULTS, Math.floor(normalized)));
|
|
23
|
-
}
|
|
24
16
|
router.use((req, res, next) => {
|
|
25
17
|
if ((0, auth_middleware_1.requireLocalAccessWhenAuthDisabled)(req, res, WEBSEARCH_LOCAL_ACCESS_ERROR)) {
|
|
26
18
|
next();
|
|
@@ -66,27 +58,6 @@ router.put('/', (req, res) => {
|
|
|
66
58
|
res.status(400).json({ error: 'Invalid value for providers. Must be an object.' });
|
|
67
59
|
return;
|
|
68
60
|
}
|
|
69
|
-
if (providers?.searxng?.url !== undefined && typeof providers.searxng.url !== 'string') {
|
|
70
|
-
res.status(400).json({ error: 'Invalid value for providers.searxng.url. Must be a string.' });
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const normalizedSearxngUrl = providers?.searxng?.url !== undefined
|
|
74
|
-
? (0, types_1.normalizeSearxngBaseUrl)(providers.searxng.url)
|
|
75
|
-
: undefined;
|
|
76
|
-
if (providers?.searxng?.url !== undefined && normalizedSearxngUrl === null) {
|
|
77
|
-
res.status(400).json({
|
|
78
|
-
error: 'Invalid value for providers.searxng.url. Must be an http(s) base URL without credentials, query, or hash.',
|
|
79
|
-
});
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
if (providers?.searxng?.max_results !== undefined &&
|
|
83
|
-
(typeof providers.searxng.max_results !== 'number' ||
|
|
84
|
-
!Number.isFinite(providers.searxng.max_results))) {
|
|
85
|
-
res.status(400).json({
|
|
86
|
-
error: 'Invalid value for providers.searxng.max_results. Must be a number.',
|
|
87
|
-
});
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
61
|
if (apiKeys !== undefined &&
|
|
91
62
|
(apiKeys === null || Array.isArray(apiKeys) || typeof apiKeys !== 'object')) {
|
|
92
63
|
res.status(400).json({ error: 'Invalid value for apiKeys. Must be an object.' });
|
|
@@ -106,7 +77,6 @@ router.put('/', (req, res) => {
|
|
|
106
77
|
}
|
|
107
78
|
try {
|
|
108
79
|
(0, unified_config_loader_1.mutateUnifiedConfig)((config) => {
|
|
109
|
-
const existingSearxngUrl = (0, types_1.normalizeSearxngBaseUrl)(config.websearch?.providers?.searxng?.url) ?? '';
|
|
110
80
|
config.websearch = {
|
|
111
81
|
enabled: enabled ?? config.websearch?.enabled ?? true,
|
|
112
82
|
providers: providers
|
|
@@ -137,13 +107,6 @@ router.put('/', (req, res) => {
|
|
|
137
107
|
config.websearch?.providers?.brave?.max_results ??
|
|
138
108
|
5,
|
|
139
109
|
},
|
|
140
|
-
searxng: {
|
|
141
|
-
enabled: providers.searxng?.enabled ??
|
|
142
|
-
config.websearch?.providers?.searxng?.enabled ??
|
|
143
|
-
false,
|
|
144
|
-
url: normalizedSearxngUrl ?? existingSearxngUrl,
|
|
145
|
-
max_results: clampWebSearchMaxResults(providers.searxng?.max_results, config.websearch?.providers?.searxng?.max_results ?? DEFAULT_WEBSEARCH_MAX_RESULTS),
|
|
146
|
-
},
|
|
147
110
|
gemini: {
|
|
148
111
|
enabled: providers.gemini?.enabled ??
|
|
149
112
|
config.websearch?.providers?.gemini?.enabled ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websearch-routes.js","sourceRoot":"","sources":["../../../src/web-server/routes/websearch-routes.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,qCAAoD;AACpD,8EAA6F;AAE7F,qEAAgG;AAChG,6EAKgD;AAChD,
|
|
1
|
+
{"version":3,"file":"websearch-routes.js","sourceRoot":"","sources":["../../../src/web-server/routes/websearch-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-dashboard-install-service.d.ts","sourceRoot":"","sources":["../../../src/web-server/services/cliproxy-dashboard-install-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGhG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"cliproxy-dashboard-install-service.d.ts","sourceRoot":"","sources":["../../../src/web-server/services/cliproxy-dashboard-install-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGhG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,mCAAmC;IAC3C,cAAc,EAAE,MAAM,eAAe,CAAC;IACtC,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,sBAAsB,EAAE,CACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,qBAAqB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC1D;AASD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE,mCAAiD,GACtD,OAAO,CAAC,8BAA8B,CAAC,CAgCzC"}
|
|
@@ -5,7 +5,6 @@ const binary_manager_1 = require("../../cliproxy/binary-manager");
|
|
|
5
5
|
const service_manager_1 = require("../../cliproxy/service-manager");
|
|
6
6
|
const session_tracker_1 = require("../../cliproxy/session-tracker");
|
|
7
7
|
const stats_fetcher_1 = require("../../cliproxy/stats-fetcher");
|
|
8
|
-
const supervisord_lifecycle_1 = require("../../docker/supervisord-lifecycle");
|
|
9
8
|
const defaultDeps = {
|
|
10
9
|
getProxyStatus: session_tracker_1.getProxyStatus,
|
|
11
10
|
isCliproxyRunning: stats_fetcher_1.isCliproxyRunning,
|
|
@@ -32,19 +31,6 @@ async function installDashboardCliproxyVersion(version, backend, deps = defaultD
|
|
|
32
31
|
message: `Successfully installed ${backendLabel} v${version}`,
|
|
33
32
|
};
|
|
34
33
|
}
|
|
35
|
-
// In Docker, supervisord owns process lifecycle — delegate restart to it
|
|
36
|
-
if ((0, supervisord_lifecycle_1.isRunningUnderSupervisord)()) {
|
|
37
|
-
const result = (0, supervisord_lifecycle_1.restartCliproxyViaSupervisord)();
|
|
38
|
-
return {
|
|
39
|
-
success: result.success,
|
|
40
|
-
restarted: result.success,
|
|
41
|
-
port: result.port,
|
|
42
|
-
error: result.error,
|
|
43
|
-
message: result.success
|
|
44
|
-
? `Successfully installed ${backendLabel} v${version} and restarted it on port ${result.port}`
|
|
45
|
-
: `Installed ${backendLabel} v${version}, but restart failed`,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
34
|
const startResult = await deps.ensureCliproxyService();
|
|
49
35
|
if (!startResult.started && !startResult.alreadyRunning) {
|
|
50
36
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-dashboard-install-service.js","sourceRoot":"","sources":["../../../src/web-server/services/cliproxy-dashboard-install-service.ts"],"names":[],"mappings":";;;AAAA,kEAAuE;AACvE,oEAAgG;AAChG,oEAAyF;AACzF,gEAAiE;
|
|
1
|
+
{"version":3,"file":"cliproxy-dashboard-install-service.js","sourceRoot":"","sources":["../../../src/web-server/services/cliproxy-dashboard-install-service.ts"],"names":[],"mappings":";;;AAAA,kEAAuE;AACvE,oEAAgG;AAChG,oEAAyF;AACzF,gEAAiE;AAkBjE,MAAM,WAAW,GAAwC;IACvD,cAAc,EAAE,gCAAqB;IACrC,iBAAiB,EAAjB,iCAAiB;IACjB,sBAAsB,EAAtB,uCAAsB;IACtB,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAA,uCAAqB,GAAE;CACrD,CAAC;AAUF,KAAK,UAAU,eAAe,CAAC,IAAyC;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,+BAA+B,CACnD,OAAe,EACf,OAAwB,EACxB,OAA4C,WAAW;IAEvD,MAAM,YAAY,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC;IACvE,MAAM,oBAAoB,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAEzD,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,0BAA0B,YAAY,KAAK,OAAO,EAAE;SAC9D,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACvD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,aAAa,YAAY,KAAK,OAAO,sBAAsB;YACvF,OAAO,EAAE,aAAa,YAAY,KAAK,OAAO,4BAA4B;SAC3E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,OAAO,EAAE,0BAA0B,YAAY,KAAK,OAAO,6BAA6B,WAAW,CAAC,IAAI,EAAE;KAC3G,CAAC;AACJ,CAAC;AApCD,0EAoCC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
/// <reference types="bun-types" />
|
|
3
2
|
import type { CodexConfigPatchInput, CodexConfigPatchResult, CodexDashboardDiagnostics, CodexFeatureFlagDiagnostics, CodexMcpServerDiagnostics, CodexModelProviderDiagnostics, CodexProjectTrustDiagnostics, CodexRawConfigResponse } from './compatible-cli-types';
|
|
4
3
|
import { TomlFileConflictError, TomlFileValidationError } from './compatible-cli-toml-file-service';
|
|
5
4
|
interface CodexConfigPaths {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-dashboard-service.d.ts","sourceRoot":"","sources":["../../../src/web-server/services/codex-dashboard-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex-dashboard-service.d.ts","sourceRoot":"","sources":["../../../src/web-server/services/codex-dashboard-service.ts"],"names":[],"mappings":";AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EAIxB,MAAM,oCAAoC,CAAC;AAG5C,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,wBAAwB;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,OAAO,EACL,qBAAqB,IAAI,2BAA2B,EACpD,uBAAuB,IAAI,6BAA6B,GACzD,CAAC;AAyeF,wBAAgB,uBAAuB,CACrC,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,gBAAgB,CAclB;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,6BAA6B,EAAE,CA2B5F;AAMD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG;IAC1D,GAAG,EAAE,2BAA2B,EAAE,CAAC;IACnC,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACvC,QAAQ,EAAE,2BAA2B,EAAE,CAAC;CACzC,CAkBA;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,4BAA4B,EAAE,CAazF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,EAAE,CA4BpF;AAqDD,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC,CA4GvF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAkBzE;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAcnC;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAmDjC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
/// <reference types="bun-types" />
|
|
3
2
|
import type { DroidByokDiagnostics, DroidDashboardDiagnostics, DroidRawSettingsResponse } from './compatible-cli-types';
|
|
4
3
|
import { JsonFileConflictError, JsonFileValidationError } from './compatible-cli-json-file-service';
|
|
5
4
|
interface DroidConfigPaths {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droid-dashboard-service.d.ts","sourceRoot":"","sources":["../../../src/web-server/services/droid-dashboard-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"droid-dashboard-service.d.ts","sourceRoot":"","sources":["../../../src/web-server/services/droid-dashboard-service.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EACV,oBAAoB,EAEpB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EAGxB,MAAM,oCAAoC,CAAC;AAG5C,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,yBAAyB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,0BAA0B;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,OAAO,EACL,qBAAqB,IAAI,6BAA6B,EACtD,uBAAuB,IAAI,+BAA+B,GAC3D,CAAC;AA0BF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvD;AAMD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,gBAAgB,CAclB;AAiBD,wBAAgB,0BAA0B,CAAC,iBAAiB,EAAE,OAAO,GAAG,oBAAoB,CAuD3F;AAqBD,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,yBAAyB,CAAC,CA2DvF;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAiB7E;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAarC"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* - Exa Search API
|
|
7
7
|
* - Tavily Search API
|
|
8
8
|
* - Brave Search API
|
|
9
|
-
* - SearXNG JSON API
|
|
10
9
|
* - DuckDuckGo HTML search
|
|
11
10
|
*
|
|
12
11
|
* Legacy compatibility fallback:
|
|
@@ -370,36 +369,6 @@ function getResultCount(provider) {
|
|
|
370
369
|
return Number.isFinite(parsed) && parsed > 0 ? Math.min(parsed, 10) : DEFAULT_RESULT_COUNT;
|
|
371
370
|
}
|
|
372
371
|
|
|
373
|
-
function getSearxngBaseUrl() {
|
|
374
|
-
const raw = (process.env.CCS_WEBSEARCH_SEARXNG_URL || '').trim();
|
|
375
|
-
if (!raw) {
|
|
376
|
-
return '';
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
try {
|
|
380
|
-
const parsed = new URL(raw);
|
|
381
|
-
if (!['http:', 'https:'].includes(parsed.protocol) || parsed.search || parsed.hash) {
|
|
382
|
-
return '';
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
if (parsed.username || parsed.password) {
|
|
386
|
-
return '';
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
let pathname = parsed.pathname.replace(/\/+$/, '');
|
|
390
|
-
if (pathname.toLowerCase().endsWith('/search')) {
|
|
391
|
-
pathname = pathname.slice(0, -'/search'.length);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
parsed.pathname = pathname || '/';
|
|
395
|
-
parsed.search = '';
|
|
396
|
-
parsed.hash = '';
|
|
397
|
-
return parsed.toString().replace(/\/+$/, '');
|
|
398
|
-
} catch {
|
|
399
|
-
return '';
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
|
|
403
372
|
function buildPrompt(providerId, query) {
|
|
404
373
|
const config = PROVIDER_CONFIG[providerId];
|
|
405
374
|
const parts = [
|
|
@@ -600,104 +569,6 @@ async function tryBraveSearch(query, timeoutSec = DEFAULT_TIMEOUT_SEC) {
|
|
|
600
569
|
}
|
|
601
570
|
}
|
|
602
571
|
|
|
603
|
-
async function trySearxngSearch(query, timeoutSec = DEFAULT_TIMEOUT_SEC) {
|
|
604
|
-
const baseUrl = getSearxngBaseUrl();
|
|
605
|
-
if (!baseUrl) {
|
|
606
|
-
return { success: false, error: 'SearXNG URL is invalid or not configured' };
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
const params = new URLSearchParams({
|
|
610
|
-
q: query,
|
|
611
|
-
format: 'json',
|
|
612
|
-
});
|
|
613
|
-
|
|
614
|
-
try {
|
|
615
|
-
const response = await fetchWithTimeout(
|
|
616
|
-
`${baseUrl}/search?${params.toString()}`,
|
|
617
|
-
{
|
|
618
|
-
headers: {
|
|
619
|
-
Accept: 'application/json',
|
|
620
|
-
'User-Agent': USER_AGENT,
|
|
621
|
-
},
|
|
622
|
-
},
|
|
623
|
-
timeoutSec * 1000
|
|
624
|
-
);
|
|
625
|
-
|
|
626
|
-
if (!response.ok) {
|
|
627
|
-
const body = await response.text();
|
|
628
|
-
if (
|
|
629
|
-
response.status === 403 &&
|
|
630
|
-
/format(?:=|\s*)json|json[^\n]{0,40}disabled|disabled[^\n]{0,40}json/i.test(body)
|
|
631
|
-
) {
|
|
632
|
-
return {
|
|
633
|
-
success: false,
|
|
634
|
-
error: 'SearXNG returned 403: format=json is disabled on this instance',
|
|
635
|
-
statusCode: response.status,
|
|
636
|
-
retryAfterSec: parseRetryAfterSeconds(readHeaderValue(response.headers, 'retry-after')),
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
return {
|
|
641
|
-
success: false,
|
|
642
|
-
error: `SearXNG returned ${response.status}: ${body.slice(0, 160)}`,
|
|
643
|
-
statusCode: response.status,
|
|
644
|
-
retryAfterSec: parseRetryAfterSeconds(readHeaderValue(response.headers, 'retry-after')),
|
|
645
|
-
};
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
let body;
|
|
649
|
-
try {
|
|
650
|
-
body = await response.json();
|
|
651
|
-
} catch {
|
|
652
|
-
return {
|
|
653
|
-
success: false,
|
|
654
|
-
error: 'SearXNG returned malformed JSON payload',
|
|
655
|
-
};
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
if (!body || typeof body !== 'object' || !Array.isArray(body.results)) {
|
|
659
|
-
return {
|
|
660
|
-
success: false,
|
|
661
|
-
error: 'SearXNG JSON response is missing results[]',
|
|
662
|
-
};
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
const count = getResultCount('searxng');
|
|
666
|
-
const results = body.results.slice(0, count).map((entry) => {
|
|
667
|
-
const result = entry && typeof entry === 'object' ? entry : {};
|
|
668
|
-
const url = typeof result.url === 'string' ? result.url : '';
|
|
669
|
-
const titleSource =
|
|
670
|
-
typeof result.title === 'string' && result.title.trim().length > 0
|
|
671
|
-
? result.title
|
|
672
|
-
: url || 'Untitled';
|
|
673
|
-
const descriptionSource =
|
|
674
|
-
typeof result.content === 'string'
|
|
675
|
-
? result.content
|
|
676
|
-
: typeof result.description === 'string'
|
|
677
|
-
? result.description
|
|
678
|
-
: typeof result.snippet === 'string'
|
|
679
|
-
? result.snippet
|
|
680
|
-
: '';
|
|
681
|
-
|
|
682
|
-
return {
|
|
683
|
-
title: compactText(titleSource, 120),
|
|
684
|
-
url,
|
|
685
|
-
description: compactText(descriptionSource, 240),
|
|
686
|
-
};
|
|
687
|
-
});
|
|
688
|
-
|
|
689
|
-
return {
|
|
690
|
-
success: true,
|
|
691
|
-
content: formatStructuredSearchResults(query, 'SearXNG', results),
|
|
692
|
-
};
|
|
693
|
-
} catch (error) {
|
|
694
|
-
return {
|
|
695
|
-
success: false,
|
|
696
|
-
error: error.name === 'AbortError' ? 'SearXNG timed out' : error.message,
|
|
697
|
-
};
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
|
|
701
572
|
async function tryExaSearch(query, timeoutSec = DEFAULT_TIMEOUT_SEC) {
|
|
702
573
|
const apiKey = getProviderApiKey('exa');
|
|
703
574
|
if (!apiKey) {
|
|
@@ -1021,12 +892,6 @@ function getConfiguredProviders() {
|
|
|
1021
892
|
available: () => isProviderEnabled('brave') && Boolean(getProviderApiKey('brave')),
|
|
1022
893
|
fn: tryBraveSearch,
|
|
1023
894
|
},
|
|
1024
|
-
{
|
|
1025
|
-
name: 'SearXNG',
|
|
1026
|
-
id: 'searxng',
|
|
1027
|
-
available: () => isProviderEnabled('searxng') && Boolean(getSearxngBaseUrl()),
|
|
1028
|
-
fn: trySearxngSearch,
|
|
1029
|
-
},
|
|
1030
895
|
{
|
|
1031
896
|
name: 'DuckDuckGo',
|
|
1032
897
|
id: 'duckduckgo',
|
|
@@ -1415,5 +1280,4 @@ module.exports = {
|
|
|
1415
1280
|
tryTavilySearch,
|
|
1416
1281
|
tryDuckDuckGoSearch,
|
|
1417
1282
|
tryBraveSearch,
|
|
1418
|
-
trySearxngSearch,
|
|
1419
1283
|
};
|
|
@@ -16,7 +16,7 @@ const SERVER_VERSION = '1.0.0';
|
|
|
16
16
|
const TOOL_NAME = 'WebSearch';
|
|
17
17
|
const TOOL_ALIASES = ['search'];
|
|
18
18
|
const TOOL_DESCRIPTION =
|
|
19
|
-
'Third-party WebSearch replacement for CCS-managed Claude launches. Use this instead of Bash/curl/http fetches for web lookups. Provider order: Exa, Tavily, Brave Search,
|
|
19
|
+
'Third-party WebSearch replacement for CCS-managed Claude launches. Use this instead of Bash/curl/http fetches for web lookups. Provider order: Exa, Tavily, Brave Search, DuckDuckGo, then optional legacy CLI fallback.';
|
|
20
20
|
|
|
21
21
|
function isSupportedToolName(name) {
|
|
22
22
|
return name === TOOL_NAME || TOOL_ALIASES.includes(name);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaitranntt/ccs",
|
|
3
|
-
"version": "7.68.
|
|
3
|
+
"version": "7.68.2",
|
|
4
4
|
"description": "Claude Code Switch - Instant profile switching between Claude, GLM, Kimi, and more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -124,7 +124,6 @@
|
|
|
124
124
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
125
125
|
"@tailwindcss/vite": "^4.1.17",
|
|
126
126
|
"@types/bcrypt": "^6.0.0",
|
|
127
|
-
"@types/bun": "^1.3.12",
|
|
128
127
|
"@types/chokidar": "^2.1.7",
|
|
129
128
|
"@types/express": "^4.17.21",
|
|
130
129
|
"@types/express-rate-limit": "6.0.0",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { CursorConfig } from '../config/unified-config-types';
|
|
2
|
-
export interface CursorProbeResult {
|
|
3
|
-
ok: boolean;
|
|
4
|
-
stage: 'config' | 'auth' | 'daemon' | 'runtime';
|
|
5
|
-
status: number;
|
|
6
|
-
duration_ms: number;
|
|
7
|
-
model?: string;
|
|
8
|
-
error_type?: string | null;
|
|
9
|
-
message: string;
|
|
10
|
-
}
|
|
11
|
-
export declare function probeCursorRuntime(config: CursorConfig): Promise<CursorProbeResult>;
|
|
12
|
-
//# sourceMappingURL=cursor-runtime-probe.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-runtime-probe.d.ts","sourceRoot":"","sources":["../../src/cursor/cursor-runtime-probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAwFD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgKzF"}
|