@kaitranntt/ccs 7.78.1 → 7.79.1-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/ccsxp-runtime.d.ts +1 -0
- package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
- package/dist/bin/ccsxp-runtime.js +2 -0
- package/dist/bin/ccsxp-runtime.js.map +1 -1
- package/dist/channels/official-channels-runtime.d.ts.map +1 -1
- package/dist/channels/official-channels-runtime.js +11 -0
- package/dist/channels/official-channels-runtime.js.map +1 -1
- package/dist/channels/official-channels-store.d.ts.map +1 -1
- package/dist/channels/official-channels-store.js +3 -4
- package/dist/channels/official-channels-store.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +21 -0
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts +22 -0
- package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts.map +1 -0
- package/dist/cliproxy/auth/oauth-start-failure-guidance.js +82 -0
- package/dist/cliproxy/auth/oauth-start-failure-guidance.js.map +1 -0
- package/dist/cliproxy/executor/claude-launcher.d.ts.map +1 -1
- package/dist/cliproxy/executor/claude-launcher.js +22 -9
- package/dist/cliproxy/executor/claude-launcher.js.map +1 -1
- package/dist/cliproxy/executor/session-bridge.d.ts +16 -1
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
- package/dist/cliproxy/executor/session-bridge.js +86 -54
- package/dist/cliproxy/executor/session-bridge.js.map +1 -1
- package/dist/commands/config-command-options.d.ts.map +1 -1
- package/dist/commands/config-command-options.js +4 -2
- package/dist/commands/config-command-options.js.map +1 -1
- package/dist/commands/config-command.js +1 -1
- package/dist/commands/config-command.js.map +1 -1
- package/dist/commands/config-dashboard-host.d.ts +1 -0
- package/dist/commands/config-dashboard-host.d.ts.map +1 -1
- package/dist/commands/config-dashboard-host.js +2 -1
- package/dist/commands/config-dashboard-host.js.map +1 -1
- package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/settings-flow.js +21 -10
- package/dist/dispatcher/flows/settings-flow.js.map +1 -1
- package/dist/dispatcher/profile-resolver.d.ts.map +1 -1
- package/dist/dispatcher/profile-resolver.js +14 -1
- package/dist/dispatcher/profile-resolver.js.map +1 -1
- package/dist/management/checks/profile-check.d.ts.map +1 -1
- package/dist/management/checks/profile-check.js +2 -3
- package/dist/management/checks/profile-check.js.map +1 -1
- package/dist/management/checks/symlink-check.d.ts.map +1 -1
- package/dist/management/checks/symlink-check.js +2 -3
- package/dist/management/checks/symlink-check.js.map +1 -1
- package/dist/management/checks/system-check.d.ts.map +1 -1
- package/dist/management/checks/system-check.js +1 -1
- package/dist/management/checks/system-check.js.map +1 -1
- package/dist/management/instance-directory.d.ts +4 -0
- package/dist/management/instance-directory.d.ts.map +1 -0
- package/dist/management/instance-directory.js +54 -0
- package/dist/management/instance-directory.js.map +1 -0
- package/dist/management/instance-manager.d.ts.map +1 -1
- package/dist/management/instance-manager.js +2 -10
- package/dist/management/instance-manager.js.map +1 -1
- package/dist/management/shared-manager.d.ts.map +1 -1
- package/dist/management/shared-manager.js +6 -16
- package/dist/management/shared-manager.js.map +1 -1
- package/dist/proxy/proxy-daemon-entry.js +46 -3
- package/dist/proxy/proxy-daemon-entry.js.map +1 -1
- package/dist/proxy/proxy-daemon-state.d.ts +2 -0
- package/dist/proxy/proxy-daemon-state.d.ts.map +1 -1
- package/dist/proxy/proxy-daemon-state.js +42 -4
- package/dist/proxy/proxy-daemon-state.js.map +1 -1
- package/dist/proxy/proxy-daemon.d.ts.map +1 -1
- package/dist/proxy/proxy-daemon.js +11 -6
- package/dist/proxy/proxy-daemon.js.map +1 -1
- package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -1
- package/dist/proxy/transformers/sse-stream-transformer.js +1 -0
- package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -1
- package/dist/shared/toml-object.d.ts.map +1 -1
- package/dist/shared/toml-object.js +6 -2
- package/dist/shared/toml-object.js.map +1 -1
- package/dist/targets/codex-adapter.d.ts +1 -0
- package/dist/targets/codex-adapter.d.ts.map +1 -1
- package/dist/targets/codex-adapter.js +18 -1
- package/dist/targets/codex-adapter.js.map +1 -1
- package/dist/targets/codex-cliproxy-provider-config.d.ts +16 -0
- package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -0
- package/dist/targets/codex-cliproxy-provider-config.js +156 -0
- package/dist/targets/codex-cliproxy-provider-config.js.map +1 -0
- package/dist/targets/target-runtime-compatibility.js +1 -1
- package/dist/targets/target-runtime-compatibility.js.map +1 -1
- package/dist/ui/assets/accounts-CQ7-Zx3_.js +1 -0
- package/dist/ui/assets/{alert-dialog-ClPYGzV3.js → alert-dialog-834N3Y7a.js} +1 -1
- package/dist/ui/assets/api-BJc1e2ju.js +4 -0
- package/dist/ui/assets/auth-section-FHhzv-t_.js +1 -0
- package/dist/ui/assets/backups-section-XgV36q98.js +1 -0
- package/dist/ui/assets/channels-BiUWmX53.js +1 -0
- package/dist/ui/assets/{charts-CeK2xCSo.js → charts-eIPy2oG6.js} +34 -34
- package/dist/ui/assets/{checkbox-CTpEjpTH.js → checkbox-Q5jqcuNs.js} +1 -1
- package/dist/ui/assets/claude-extension-Dg6ZOc-X.js +1 -0
- package/dist/ui/assets/cliproxy-DUGEhRI_.js +4 -0
- package/dist/ui/assets/{cliproxy-ai-providers-DoUPKyI5.js → cliproxy-ai-providers-DH1LvC9H.js} +1 -1
- package/dist/ui/assets/cliproxy-control-panel-DQcF0grk.js +1 -0
- package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
- package/dist/ui/assets/codex-B4aTo2gn.js +30 -0
- package/dist/ui/assets/{confirm-dialog-CYj_LLWN.js → confirm-dialog-ZIkkz4a-.js} +1 -1
- package/dist/ui/assets/copilot-BxTvmyiq.js +3 -0
- package/dist/ui/assets/cursor-DFNXCb2C.js +1 -0
- package/dist/ui/assets/droid-BtmVuSvi.js +2 -0
- package/dist/ui/assets/globalenv-section-ZUDnNjxP.js +1 -0
- package/dist/ui/assets/health-BQ5SLS-w.js +1 -0
- package/dist/ui/assets/index-2_GLcEv2.js +1 -0
- package/dist/ui/assets/index-BRwWpHe-.js +56 -0
- package/dist/ui/assets/index-BW69dNHf.js +1 -0
- package/dist/ui/assets/index-C6Qs2iuI.js +1 -0
- package/dist/ui/assets/index-DG9lONG_.js +1 -0
- package/dist/ui/assets/index-DKO-Gvdv.js +1 -0
- package/dist/ui/assets/index-YRmKZmzf.js +1 -0
- package/dist/ui/assets/index-nSsKQx8t.css +1 -0
- package/dist/ui/assets/logs-CiJ1hg6a.js +1 -0
- package/dist/ui/assets/{masked-input-eN6tFUjN.js → masked-input-CxbGLkmv.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-50UIM6S8.js → proxy-status-widget-BWr7WQY-.js} +1 -1
- package/dist/ui/assets/raw-json-settings-editor-panel-BRT6eyp6.js +1 -0
- package/dist/ui/assets/{searchable-select-JO0gngYE.js → searchable-select-zyPEV9KP.js} +1 -1
- package/dist/ui/assets/{separator-AoncAA6l.js → separator-BDmUKYTf.js} +1 -1
- package/dist/ui/assets/shared-CDiPdrLt.js +8 -0
- package/dist/ui/assets/{table-BM_YK49c.js → table-DB4ZK3nd.js} +1 -1
- package/dist/ui/assets/updates-IMCUh1DI.js +1 -0
- package/dist/ui/assets/{use-accounts-ELLatpzU.js → use-accounts-CyI5Ozs6.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/utils/browser/claude-tool-args.d.ts.map +1 -1
- package/dist/utils/browser/claude-tool-args.js +4 -0
- package/dist/utils/browser/claude-tool-args.js.map +1 -1
- package/dist/utils/claude-detector.d.ts.map +1 -1
- package/dist/utils/claude-detector.js +2 -1
- package/dist/utils/claude-detector.js.map +1 -1
- package/dist/utils/claude-subcommand-detector.d.ts +45 -0
- package/dist/utils/claude-subcommand-detector.d.ts.map +1 -0
- package/dist/utils/claude-subcommand-detector.js +179 -0
- package/dist/utils/claude-subcommand-detector.js.map +1 -0
- package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -1
- package/dist/utils/image-analysis/claude-tool-args.js +4 -0
- package/dist/utils/image-analysis/claude-tool-args.js.map +1 -1
- package/dist/utils/shell-executor.d.ts +4 -2
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/shell-executor.js +59 -7
- package/dist/utils/shell-executor.js.map +1 -1
- package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
- package/dist/utils/websearch/claude-tool-args.js +5 -0
- package/dist/utils/websearch/claude-tool-args.js.map +1 -1
- package/dist/web-server/health/profile-checks.d.ts.map +1 -1
- package/dist/web-server/health/profile-checks.js +2 -3
- package/dist/web-server/health/profile-checks.js.map +1 -1
- package/dist/web-server/health/symlink-checks.d.ts.map +1 -1
- package/dist/web-server/health/symlink-checks.js +2 -3
- package/dist/web-server/health/symlink-checks.js.map +1 -1
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +80 -20
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/middleware/auth-middleware.d.ts +5 -0
- package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
- package/dist/web-server/middleware/auth-middleware.js +73 -1
- package/dist/web-server/middleware/auth-middleware.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +30 -3
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
- package/dist/web-server/routes/codex-routes.js +7 -0
- package/dist/web-server/routes/codex-routes.js.map +1 -1
- package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
- package/dist/web-server/routes/settings-routes.js +92 -14
- package/dist/web-server/routes/settings-routes.js.map +1 -1
- package/dist/web-server/usage/aggregator.d.ts.map +1 -1
- package/dist/web-server/usage/aggregator.js +2 -5
- package/dist/web-server/usage/aggregator.js.map +1 -1
- package/lib/hooks/image-analyzer-transformer.cjs +49 -3
- package/lib/mcp/ccs-browser-server.cjs +153 -6
- package/package.json +1 -1
- package/scripts/verify-bundle.js +4 -1
- package/dist/ui/assets/accounts-CW9bbE4S.js +0 -1
- package/dist/ui/assets/api-BjpAFHdA.js +0 -4
- package/dist/ui/assets/auth-section-wl4-fzwD.js +0 -1
- package/dist/ui/assets/backups-section-CRfyOhtX.js +0 -1
- package/dist/ui/assets/channels-DH0HkSGX.js +0 -1
- package/dist/ui/assets/claude-extension-BQOBO5Au.js +0 -1
- package/dist/ui/assets/cliproxy-control-panel-CvjXdHw9.js +0 -1
- package/dist/ui/assets/cliproxy-qUbiZjec.js +0 -3
- package/dist/ui/assets/code-highlight-D4E79GKQ.js +0 -3
- package/dist/ui/assets/codex-BeeazJpw.js +0 -27
- package/dist/ui/assets/copilot-ZCJeM_Zk.js +0 -3
- package/dist/ui/assets/cursor-CtBjQ1_j.js +0 -1
- package/dist/ui/assets/droid-BLmzMBtN.js +0 -2
- package/dist/ui/assets/globalenv-section-0ENDeVbM.js +0 -1
- package/dist/ui/assets/health-BEnDHk-j.js +0 -1
- package/dist/ui/assets/index-B3xma6R0.js +0 -1
- package/dist/ui/assets/index-Bs28kNJN.js +0 -72
- package/dist/ui/assets/index-C04Kst21.js +0 -1
- package/dist/ui/assets/index-Cip18A41.js +0 -1
- package/dist/ui/assets/index-ClMz157R.js +0 -1
- package/dist/ui/assets/index-D2_yb3d2.css +0 -1
- package/dist/ui/assets/index-DrCrZ7r1.js +0 -1
- package/dist/ui/assets/index-O9Qq-UJq.js +0 -1
- package/dist/ui/assets/logs-DQxVdsHm.js +0 -1
- package/dist/ui/assets/raw-json-settings-editor-panel-DqKmVWL-.js +0 -1
- package/dist/ui/assets/shared-BTv96-3y.js +0 -8
- package/dist/ui/assets/updates-eo4H4NOg.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-executor.js","sourceRoot":"","sources":["../../src/utils/shell-executor.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"shell-executor.js","sourceRoot":"","sources":["../../src/utils/shell-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-tool-args.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/claude-tool-args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"claude-tool-args.d.ts","sourceRoot":"","sources":["../../../src/utils/websearch/claude-tool-args.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,eAAO,MAAM,qCAAqC;;;CAIjD,CAAC;AAgHF,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAK1E"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.appendThirdPartyWebSearchToolArgs = exports.THIRD_PARTY_WEBSEARCH_STEERING_PROMPT = void 0;
|
|
10
10
|
const claude_tool_args_1 = require("../claude-tool-args");
|
|
11
11
|
const prompt_injection_strategy_1 = require("../prompt-injection-strategy");
|
|
12
|
+
const claude_subcommand_detector_1 = require("../claude-subcommand-detector");
|
|
12
13
|
const NATIVE_WEBSEARCH_TOOL = 'WebSearch';
|
|
13
14
|
const DISALLOWED_TOOLS_FLAG = '--disallowedTools';
|
|
14
15
|
exports.THIRD_PARTY_WEBSEARCH_STEERING_PROMPT = {
|
|
@@ -96,6 +97,10 @@ function ensureWebSearchSteeringPrompt(args) {
|
|
|
96
97
|
return [...optionArgs, ...steeringArgs, ...trailingArgs];
|
|
97
98
|
}
|
|
98
99
|
function appendThirdPartyWebSearchToolArgs(args) {
|
|
100
|
+
// Claude subcommands (agents, doctor, mcp, ...) reject top-level session flags
|
|
101
|
+
// like `--append-system-prompt` and `--disallowedTools`. Issue #1218.
|
|
102
|
+
if ((0, claude_subcommand_detector_1.isClaudeSubcommandInvocation)(args))
|
|
103
|
+
return args;
|
|
99
104
|
return ensureWebSearchSteeringPrompt(ensureDisallowedNativeWebSearchTool(args));
|
|
100
105
|
}
|
|
101
106
|
exports.appendThirdPartyWebSearchToolArgs = appendThirdPartyWebSearchToolArgs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-tool-args.js","sourceRoot":"","sources":["../../../src/utils/websearch/claude-tool-args.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,0DAI6B;AAC7B,4EAIsC;
|
|
1
|
+
{"version":3,"file":"claude-tool-args.js","sourceRoot":"","sources":["../../../src/utils/websearch/claude-tool-args.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,0DAI6B;AAC7B,4EAIsC;AACtC,8EAA6E;AAE7E,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAC1C,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AACrC,QAAA,qCAAqC,GAAG;IACnD,IAAI,EAAE,2BAA2B;IACjC,OAAO,EACL,kPAAkP;CACrP,CAAC;AAEF,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,eAAe,CAAC,SAAmB,EAAE,QAAgB;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,IAAc,EAAE,IAAY,EAAE,QAAgB;IACnE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAA,wCAAqB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAc;IACzD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAA,wCAA2B,EAAC,IAAI,CAAC,CAAC;IAEvE,IAAI,aAAa,CAAC,UAAU,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,IAAA,wCAAqB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,eAAe,CACjC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAClC,qBAAqB,CACtB,CAAC;YAEF,OAAO;gBACL,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;gBACjC,WAAW;gBACX,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAClE,GAAG,YAAY;aAChB,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7D,OAAO;gBACL,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;gBAC7B,GAAG,qBAAqB,IAAI,eAAe,CAAC,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC,EAAE;gBAChF,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC9B,GAAG,YAAY;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,GAAG,YAAY,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAc;IACnD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAA,wCAA2B,EAAC,IAAI,CAAC,CAAC;IAEvE,IACE,IAAA,oCAAuB,EACrB,UAAU,EACV,8CAAkB,EAClB,6CAAqC,CAAC,OAAO,CAC9C,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,IAAA,mDAAuB,EAAC;QACtB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,6CAAqC,CAAC,IAAI;KACvD,CAAC,EACF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,4CAAgB,EAAC;QACpC,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,6CAAqC,CAAC,IAAI;QACtD,aAAa,EAAE,6CAAqC,CAAC,OAAO;KAC7D,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,iCAAiC,CAAC,IAAc;IAC9D,+EAA+E;IAC/E,sEAAsE;IACtE,IAAI,IAAA,yDAA4B,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,6BAA6B,CAAC,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,CAAC;AALD,8EAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-checks.d.ts","sourceRoot":"","sources":["../../../src/web-server/health/profile-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"profile-checks.d.ts","sourceRoot":"","sources":["../../../src/web-server/health/profile-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CA6EzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CA6B1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CA0C3D"}
|
|
@@ -33,6 +33,7 @@ exports.checkDelegation = exports.checkInstances = exports.checkProfiles = void
|
|
|
33
33
|
const fs = __importStar(require("fs"));
|
|
34
34
|
const path = __importStar(require("path"));
|
|
35
35
|
const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
36
|
+
const instance_directory_1 = require("../../management/instance-directory");
|
|
36
37
|
/**
|
|
37
38
|
* Check profiles configuration (API profiles from config.json or config.yaml)
|
|
38
39
|
*/
|
|
@@ -120,9 +121,7 @@ function checkInstances(ccsDir) {
|
|
|
120
121
|
message: 'No account profiles',
|
|
121
122
|
};
|
|
122
123
|
}
|
|
123
|
-
const instances =
|
|
124
|
-
return fs.statSync(path.join(instancesDir, name)).isDirectory();
|
|
125
|
-
});
|
|
124
|
+
const instances = (0, instance_directory_1.listAccountInstanceNames)(instancesDir);
|
|
126
125
|
if (instances.length === 0) {
|
|
127
126
|
return {
|
|
128
127
|
id: 'instances',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-checks.js","sourceRoot":"","sources":["../../../src/web-server/health/profile-checks.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAG7B,4EAAqF;
|
|
1
|
+
{"version":3,"file":"profile-checks.js","sourceRoot":"","sources":["../../../src/web-server/health/profile-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symlink-checks.d.ts","sourceRoot":"","sources":["../../../src/web-server/health/symlink-checks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"symlink-checks.d.ts","sourceRoot":"","sources":["../../../src/web-server/health/symlink-checks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAiC9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAsGpF"}
|
|
@@ -31,6 +31,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
31
31
|
exports.checkSettingsSymlinks = exports.checkCcsSymlinks = void 0;
|
|
32
32
|
const fs = __importStar(require("fs"));
|
|
33
33
|
const path = __importStar(require("path"));
|
|
34
|
+
const instance_directory_1 = require("../../management/instance-directory");
|
|
34
35
|
/**
|
|
35
36
|
* Check CCS symlinks health
|
|
36
37
|
*/
|
|
@@ -116,9 +117,7 @@ function checkSettingsSymlinks(ccsDir, claudeDir) {
|
|
|
116
117
|
message: 'Shared symlink valid',
|
|
117
118
|
};
|
|
118
119
|
}
|
|
119
|
-
const instances =
|
|
120
|
-
return fs.statSync(`${instancesDir}/${name}`).isDirectory();
|
|
121
|
-
});
|
|
120
|
+
const instances = (0, instance_directory_1.listAccountInstanceNames)(instancesDir);
|
|
122
121
|
let broken = 0;
|
|
123
122
|
for (const instance of instances) {
|
|
124
123
|
const instanceSettings = `${instancesDir}/${instance}/settings.json`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symlink-checks.js","sourceRoot":"","sources":["../../../src/web-server/health/symlink-checks.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;
|
|
1
|
+
{"version":3,"file":"symlink-checks.js","sourceRoot":"","sources":["../../../src/web-server/health/symlink-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web-server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAGH,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web-server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAGH,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAgBrC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,GAAG,EAAE,eAAe,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAQD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAyLjF"}
|
package/dist/web-server/index.js
CHANGED
|
@@ -46,6 +46,10 @@ const proxy_target_resolver_1 = require("../cliproxy/proxy/proxy-target-resolver
|
|
|
46
46
|
const sync_1 = require("../cliproxy/sync");
|
|
47
47
|
const aggregator_1 = require("./usage/aggregator");
|
|
48
48
|
const logging_1 = require("../services/logging");
|
|
49
|
+
const config_dashboard_host_1 = require("../commands/config-dashboard-host");
|
|
50
|
+
function getListenHost(options) {
|
|
51
|
+
return options.host || config_dashboard_host_1.DEFAULT_DASHBOARD_HOST;
|
|
52
|
+
}
|
|
49
53
|
const logger = (0, logging_1.createLogger)('web-server');
|
|
50
54
|
/**
|
|
51
55
|
* Start Express server with WebSocket support
|
|
@@ -54,8 +58,7 @@ async function startServer(options) {
|
|
|
54
58
|
const app = (0, express_1.default)();
|
|
55
59
|
const server = http_1.default.createServer(app);
|
|
56
60
|
const wss = new ws_1.WebSocketServer({
|
|
57
|
-
|
|
58
|
-
path: '/ws',
|
|
61
|
+
noServer: true,
|
|
59
62
|
maxPayload: 1024 * 1024, // 1MB hard limit to prevent DoS
|
|
60
63
|
perMessageDeflate: false, // Prevent zip bomb attacks
|
|
61
64
|
});
|
|
@@ -70,7 +73,8 @@ async function startServer(options) {
|
|
|
70
73
|
});
|
|
71
74
|
app.use(request_logging_middleware_1.requestLoggingMiddleware);
|
|
72
75
|
// Session middleware (for dashboard auth)
|
|
73
|
-
|
|
76
|
+
const sessionMiddleware = (0, auth_middleware_1.createSessionMiddleware)();
|
|
77
|
+
app.use(sessionMiddleware);
|
|
74
78
|
// Auth middleware (protects API routes when enabled)
|
|
75
79
|
app.use(auth_middleware_1.authMiddleware);
|
|
76
80
|
// CLIProxy local reverse proxy (avoids cross-origin issues in Docker)
|
|
@@ -111,6 +115,33 @@ async function startServer(options) {
|
|
|
111
115
|
res.sendFile(path_1.default.join(staticDir, 'index.html'));
|
|
112
116
|
});
|
|
113
117
|
}
|
|
118
|
+
server.on('upgrade', (request, socket, head) => {
|
|
119
|
+
const pathname = getUpgradePathname(request.url);
|
|
120
|
+
if (!pathname) {
|
|
121
|
+
rejectWebSocketUpgrade(socket, 400, 'Invalid WebSocket upgrade request');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (pathname !== '/ws') {
|
|
125
|
+
if (!options.dev) {
|
|
126
|
+
rejectWebSocketUpgrade(socket, 404, 'WebSocket endpoint not found');
|
|
127
|
+
}
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const response = new http_1.default.ServerResponse(request);
|
|
131
|
+
sessionMiddleware(request, response, (error) => {
|
|
132
|
+
if (error) {
|
|
133
|
+
rejectWebSocketUpgrade(socket, 500, 'WebSocket session validation failed');
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (!(0, auth_middleware_1.isDashboardWebSocketUpgradeAllowed)(request)) {
|
|
137
|
+
rejectWebSocketUpgrade(socket, (0, auth_middleware_1.getDashboardWebSocketRejectionStatus)(request), 'WebSocket access denied');
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
wss.handleUpgrade(request, socket, head, (ws) => {
|
|
141
|
+
wss.emit('connection', ws, request);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
});
|
|
114
145
|
// WebSocket connection handler + file watcher
|
|
115
146
|
const { cleanup: wsCleanup } = (0, websocket_1.setupWebSocket)(wss);
|
|
116
147
|
// Start auto-sync watcher (if enabled in config)
|
|
@@ -130,11 +161,12 @@ async function startServer(options) {
|
|
|
130
161
|
};
|
|
131
162
|
// Start listening
|
|
132
163
|
return new Promise((resolve, reject) => {
|
|
164
|
+
const listenHost = getListenHost(options);
|
|
133
165
|
const onError = (error) => {
|
|
134
166
|
logger.error('server.listen_failed', 'Dashboard server failed to start', {
|
|
135
167
|
code: error.code || 'unknown',
|
|
136
168
|
message: error.message,
|
|
137
|
-
host:
|
|
169
|
+
host: listenHost,
|
|
138
170
|
port: options.port,
|
|
139
171
|
});
|
|
140
172
|
cleanup();
|
|
@@ -143,8 +175,18 @@ async function startServer(options) {
|
|
|
143
175
|
server.once('error', onError);
|
|
144
176
|
const onListening = () => {
|
|
145
177
|
server.off('error', onError);
|
|
178
|
+
try {
|
|
179
|
+
assertSafeDashboardBind(options, server.address());
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
cleanup();
|
|
183
|
+
server.close(() => {
|
|
184
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
185
|
+
});
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
146
188
|
logger.info('server.listening', 'Dashboard server listening', {
|
|
147
|
-
host:
|
|
189
|
+
host: listenHost,
|
|
148
190
|
port: options.port,
|
|
149
191
|
dev: Boolean(options.dev),
|
|
150
192
|
});
|
|
@@ -153,11 +195,7 @@ async function startServer(options) {
|
|
|
153
195
|
resolve({ server, wss, cleanup });
|
|
154
196
|
};
|
|
155
197
|
try {
|
|
156
|
-
|
|
157
|
-
server.listen(options.port, options.host, onListening);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
server.listen(options.port, onListening);
|
|
198
|
+
server.listen(options.port, listenHost, onListening);
|
|
161
199
|
}
|
|
162
200
|
catch (error) {
|
|
163
201
|
server.off('error', onError);
|
|
@@ -167,22 +205,44 @@ async function startServer(options) {
|
|
|
167
205
|
});
|
|
168
206
|
}
|
|
169
207
|
exports.startServer = startServer;
|
|
170
|
-
function
|
|
171
|
-
|
|
172
|
-
return
|
|
208
|
+
function getUpgradePathname(requestUrl) {
|
|
209
|
+
try {
|
|
210
|
+
return new URL(requestUrl ?? '/', 'http://localhost').pathname;
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
return null;
|
|
173
214
|
}
|
|
215
|
+
}
|
|
216
|
+
function rejectWebSocketUpgrade(socket, statusCode, message) {
|
|
217
|
+
socket.write(`HTTP/1.1 ${statusCode} ${message}\r\n` +
|
|
218
|
+
'Connection: close\r\n' +
|
|
219
|
+
'Content-Type: text/plain; charset=utf-8\r\n' +
|
|
220
|
+
`Content-Length: ${Buffer.byteLength(message)}\r\n` +
|
|
221
|
+
'\r\n' +
|
|
222
|
+
message);
|
|
223
|
+
socket.destroy();
|
|
224
|
+
}
|
|
225
|
+
function assertSafeDashboardBind(options, address) {
|
|
226
|
+
const listenHost = getListenHost(options);
|
|
227
|
+
if (!(0, config_dashboard_host_1.isLoopbackHost)(listenHost) || typeof address === 'string' || !address) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if ((0, config_dashboard_host_1.isLoopbackHost)(address.address)) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
throw new Error(`Dashboard host ${listenHost} resolved to non-loopback address ${address.address}; pass --host explicitly to allow network exposure.`);
|
|
234
|
+
}
|
|
235
|
+
function formatListenError(error, options) {
|
|
236
|
+
const listenHost = getListenHost(options);
|
|
174
237
|
if (error.code === 'EADDRINUSE') {
|
|
175
|
-
return `
|
|
238
|
+
return `Unable to bind ${listenHost}:${options.port}; the address may be unavailable or the port may already be in use`;
|
|
176
239
|
}
|
|
177
|
-
if (error.code === 'EADDRNOTAVAIL'
|
|
178
|
-
return `Cannot bind to ${
|
|
240
|
+
if (error.code === 'EADDRNOTAVAIL') {
|
|
241
|
+
return `Cannot bind to ${listenHost}:${options.port} on this machine`;
|
|
179
242
|
}
|
|
180
243
|
if (error.code === 'EACCES') {
|
|
181
244
|
return `Permission denied while binding to port ${options.port}`;
|
|
182
245
|
}
|
|
183
|
-
|
|
184
|
-
return `Cannot bind to ${options.host}:${options.port}: ${error.message}`;
|
|
185
|
-
}
|
|
186
|
-
return error.message;
|
|
246
|
+
return `Cannot bind to ${listenHost}:${options.port}: ${error.message}`;
|
|
187
247
|
}
|
|
188
248
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/web-server/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sDAA8B;AAC9B,gDAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/web-server/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sDAA8B;AAC9B,gDAAwB;AAExB,gDAAwB;AACxB,2BAAqC;AACrC,2CAA6C;AAC7C,kEAKsC;AACtC,wFAAmF;AACnF,4FAA6F;AAC7F,mFAAyE;AACzE,2CAA6E;AAC7E,mDAA6D;AAC7D,iDAAmD;AACnD,6EAA2F;AAe3F,SAAS,aAAa,CAAC,OAAsB;IAC3C,OAAO,OAAO,CAAC,IAAI,IAAI,8CAAsB,CAAC;AAChD,CAAC;AAED,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,YAAY,CAAC,CAAC;AAE1C;;GAEG;AACI,KAAK,UAAU,WAAW,CAAC,OAAsB;IACtD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,oBAAe,CAAC;QAC9B,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI,GAAG,IAAI,EAAE,gCAAgC;QACzD,iBAAiB,EAAE,KAAK,EAAE,2BAA2B;KACtD,CAAC,CAAC;IAEH,0DAA0D;IAC1D,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CACL,CACE,GAA+C,EAC/C,IAAqB,EACrB,GAAqB,EACrB,IAA0B,EAC1B,EAAE;QACF,IAAI,GAAG,YAAY,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACtE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,qDAAwB,CAAC,CAAC;IAElC,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,IAAA,yCAAuB,GAAE,CAAC;IACpD,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE3B,qDAAqD;IACrD,GAAG,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC;IAExB,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,CAAC,wDAAa,+BAA+B,GAAC,CAAC,CAAC,OAAO,CAAC;IACnF,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;IAEnD,gCAAgC;IAChC,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE3B,gCAAgC;IAChC,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAErC,6BAA6B;IAC7B,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IAC7D,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAEzC,yBAAyB;IACzB,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEnC,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,wDAAa,MAAM,GAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;YACtC,MAAM,EAAE;gBACN,cAAc,EAAE,IAAI;gBACpB,8DAA8D;gBAC9D,GAAG,EAAE,EAAE,MAAM,EAAE;aAChB;YACD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnC,0DAA0D;QAC1D,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACzB,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,mCAAmC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;YACtE,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClD,iBAAiB,CACf,OAA0B,EAC1B,QAA4B,EAC5B,CAAC,KAAe,EAAE,EAAE;YAClB,IAAI,KAAK,EAAE,CAAC;gBACV,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,qCAAqC,CAAC,CAAC;gBAC3E,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAA,oDAAkC,EAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,sBAAsB,CACpB,MAAM,EACN,IAAA,sDAAoC,EAAC,OAAO,CAAC,EAC7C,yBAAyB,CAC1B,CAAC;gBACF,OAAO;YACT,CAAC;YAED,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC9C,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,0BAAc,EAAC,GAAG,CAAC,CAAC;IAEnD,iDAAiD;IACjD,IAAA,2BAAoB,GAAE,CAAC;IAEvB,IAAI,CAAC,IAAA,sCAAc,GAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,KAAK,IAAA,mDAA0B,GAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,oCAAoC,EAAE;gBAC/E,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,SAAS,EAAE,CAAC;QACZ,IAAA,0BAAmB,GAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,IAAA,oCAAuB,GAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,kBAAkB;IAClB,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,CAAC,KAA4B,EAAE,EAAE;YAC/C,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,kCAAkC,EAAE;gBACvE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;gBAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9B,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC;gBACH,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,4BAA4B,EAAE;gBAC5D,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;aAC1B,CAAC,CAAC;YACH,6DAA6D;YAC7D,uEAAuE;YACvE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAA8B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAzLD,kCAyLC;AAED,SAAS,kBAAkB,CAAC,UAA8B;IACxD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAAuD,EACvD,UAAuC,EACvC,OAAe;IAEf,MAAM,CAAC,KAAK,CACV,YAAY,UAAU,IAAI,OAAO,MAAM;QACrC,uBAAuB;QACvB,6CAA6C;QAC7C,mBAAmB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;QACnD,MAAM;QACN,OAAO,CACV,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAsB,EACtB,OAAoC;IAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,CAAC,IAAA,sCAAc,EAAC,UAAU,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,IAAI,IAAA,sCAAc,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kBAAkB,UAAU,qCAAqC,OAAO,CAAC,OAAO,qDAAqD,CACtI,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA4B,EAAE,OAAsB;IAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,kBAAkB,UAAU,IAAI,OAAO,CAAC,IAAI,oEAAoE,CAAC;IAC1H,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,kBAAkB,UAAU,IAAI,OAAO,CAAC,IAAI,kBAAkB,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,2CAA2C,OAAO,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,OAAO,kBAAkB,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Dashboard Authentication Middleware
|
|
3
3
|
* Session-based auth with httpOnly cookies for CCS dashboard.
|
|
4
4
|
*/
|
|
5
|
+
/// <reference types="node" />
|
|
6
|
+
import type { IncomingMessage } from 'http';
|
|
5
7
|
import type { NextFunction, Request, Response } from 'express';
|
|
6
8
|
declare module 'express-session' {
|
|
7
9
|
interface SessionData {
|
|
@@ -24,5 +26,8 @@ export declare function createSessionMiddleware(): (req: Request, res: Response,
|
|
|
24
26
|
*/
|
|
25
27
|
export declare function authMiddleware(req: Request, res: Response, next: NextFunction): void;
|
|
26
28
|
export declare function isLoopbackRemoteAddress(value: string | undefined): boolean;
|
|
29
|
+
export declare function isDashboardWebSocketOriginAllowed(req: IncomingMessage): boolean;
|
|
30
|
+
export declare function isDashboardWebSocketUpgradeAllowed(req: IncomingMessage): boolean;
|
|
31
|
+
export declare function getDashboardWebSocketRejectionStatus(req?: IncomingMessage): 401 | 403;
|
|
27
32
|
export declare function requireLocalAccessWhenAuthDisabled(req: Request, res: Response, error?: string): boolean;
|
|
28
33
|
//# sourceMappingURL=auth-middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../../../src/web-server/middleware/auth-middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../../../src/web-server/middleware/auth-middleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAc/D,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB;CACF;AAkDD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,sDAO3B,CAAC;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,CACzC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,KACf,IAAI,CAeR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAwBpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAU1E;AAiCD,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CA6B/E;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAUhF;AAED,wBAAgB,oCAAoC,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,GAAG,GAAG,GAAG,CAQrF;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,KAAK,SAA6E,GACjF,OAAO,CAWT"}
|
|
@@ -7,7 +7,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
7
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.requireLocalAccessWhenAuthDisabled = exports.isLoopbackRemoteAddress = exports.authMiddleware = exports.createSessionMiddleware = exports.loginRateLimiter = void 0;
|
|
10
|
+
exports.requireLocalAccessWhenAuthDisabled = exports.getDashboardWebSocketRejectionStatus = exports.isDashboardWebSocketUpgradeAllowed = exports.isDashboardWebSocketOriginAllowed = exports.isLoopbackRemoteAddress = exports.authMiddleware = exports.createSessionMiddleware = exports.loginRateLimiter = void 0;
|
|
11
11
|
const express_session_1 = __importDefault(require("express-session"));
|
|
12
12
|
const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
|
|
13
13
|
const crypto_1 = __importDefault(require("crypto"));
|
|
@@ -125,6 +125,78 @@ function isLoopbackRemoteAddress(value) {
|
|
|
125
125
|
normalized.startsWith('::ffff:127.'));
|
|
126
126
|
}
|
|
127
127
|
exports.isLoopbackRemoteAddress = isLoopbackRemoteAddress;
|
|
128
|
+
function isLoopbackHostname(value) {
|
|
129
|
+
if (!value)
|
|
130
|
+
return false;
|
|
131
|
+
const normalized = value
|
|
132
|
+
.trim()
|
|
133
|
+
.toLowerCase()
|
|
134
|
+
.replace(/^\[|\]$/g, '');
|
|
135
|
+
return (normalized === 'localhost' ||
|
|
136
|
+
normalized.endsWith('.localhost') ||
|
|
137
|
+
isLoopbackRemoteAddress(normalized));
|
|
138
|
+
}
|
|
139
|
+
function getSingleHeader(value) {
|
|
140
|
+
return Array.isArray(value) ? value[0] : value;
|
|
141
|
+
}
|
|
142
|
+
function parseHostHeader(value) {
|
|
143
|
+
if (!value)
|
|
144
|
+
return null;
|
|
145
|
+
try {
|
|
146
|
+
return new URL(`http://${value}`);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function isHttpOrigin(origin) {
|
|
153
|
+
return origin.protocol === 'http:' || origin.protocol === 'https:';
|
|
154
|
+
}
|
|
155
|
+
function isDashboardWebSocketOriginAllowed(req) {
|
|
156
|
+
const originHeader = getSingleHeader(req.headers.origin);
|
|
157
|
+
if (!originHeader)
|
|
158
|
+
return true;
|
|
159
|
+
let origin;
|
|
160
|
+
try {
|
|
161
|
+
origin = new URL(originHeader);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
if (!isHttpOrigin(origin)) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
const host = parseHostHeader(getSingleHeader(req.headers.host));
|
|
170
|
+
if (!host) {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
if (origin.host.toLowerCase() === host.host.toLowerCase()) {
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
return (isLoopbackHostname(origin.hostname) &&
|
|
177
|
+
isLoopbackHostname(host.hostname) &&
|
|
178
|
+
origin.port === host.port);
|
|
179
|
+
}
|
|
180
|
+
exports.isDashboardWebSocketOriginAllowed = isDashboardWebSocketOriginAllowed;
|
|
181
|
+
function isDashboardWebSocketUpgradeAllowed(req) {
|
|
182
|
+
if (!isDashboardWebSocketOriginAllowed(req)) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
if (!(0, config_loader_facade_1.isDashboardAuthEnabled)()) {
|
|
186
|
+
return isLoopbackRemoteAddress(req.socket.remoteAddress);
|
|
187
|
+
}
|
|
188
|
+
return Boolean(req.session?.authenticated);
|
|
189
|
+
}
|
|
190
|
+
exports.isDashboardWebSocketUpgradeAllowed = isDashboardWebSocketUpgradeAllowed;
|
|
191
|
+
function getDashboardWebSocketRejectionStatus(req) {
|
|
192
|
+
if (req && !isDashboardWebSocketOriginAllowed(req)) {
|
|
193
|
+
return 403;
|
|
194
|
+
}
|
|
195
|
+
if (!(0, config_loader_facade_1.isDashboardAuthEnabled)())
|
|
196
|
+
return 403;
|
|
197
|
+
return 401;
|
|
198
|
+
}
|
|
199
|
+
exports.getDashboardWebSocketRejectionStatus = getDashboardWebSocketRejectionStatus;
|
|
128
200
|
function requireLocalAccessWhenAuthDisabled(req, res, error = 'This endpoint requires localhost access when dashboard auth is disabled.') {
|
|
129
201
|
if ((0, config_loader_facade_1.isDashboardAuthEnabled)()) {
|
|
130
202
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../../../src/web-server/middleware/auth-middleware.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;
|
|
1
|
+
{"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../../../src/web-server/middleware/auth-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-auth-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/cliproxy-auth-routes.ts"],"names":[],"mappings":"AA8CA,OAAO,EAOL,cAAc,EAIf,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"cliproxy-auth-routes.d.ts","sourceRoot":"","sources":["../../../src/web-server/routes/cliproxy-auth-routes.ts"],"names":[],"mappings":"AA8CA,OAAO,EAOL,cAAc,EAIf,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgB7D,QAAA,MAAM,MAAM,4CAAW,CAAC;AAkLxB,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,UAAU,EAAE,cAAc,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiBzC;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,cAAc,CAAA;CAAE,GACxC,MAAM,GAAG,IAAI,CAuBf;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAK7E;AASD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,gBAAgB,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1D,sBAAsB,CAAC,EAAE,MAAM,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAqBxE;AAslCD,eAAe,MAAM,CAAC"}
|
|
@@ -22,6 +22,7 @@ const route_helpers_1 = require("./route-helpers");
|
|
|
22
22
|
const auth_middleware_1 = require("../middleware/auth-middleware");
|
|
23
23
|
const config_loader_facade_1 = require("../../config/config-loader-facade");
|
|
24
24
|
const oauth_handler_1 = require("../../cliproxy/auth/oauth-handler");
|
|
25
|
+
const oauth_start_failure_guidance_1 = require("../../cliproxy/auth/oauth-start-failure-guidance");
|
|
25
26
|
const binary_manager_1 = require("../../cliproxy/binary-manager");
|
|
26
27
|
const router = (0, express_1.Router)();
|
|
27
28
|
const MANUAL_AUTH_STATE_TTL_MS = 10 * 60 * 1000;
|
|
@@ -835,6 +836,7 @@ router.post('/:provider/start-url', async (req, res) => {
|
|
|
835
836
|
});
|
|
836
837
|
return;
|
|
837
838
|
}
|
|
839
|
+
let startPath = null;
|
|
838
840
|
try {
|
|
839
841
|
const authUrlProvider = auth_types_1.CLIPROXY_AUTH_URL_PROVIDER_MAP[provider] || provider;
|
|
840
842
|
const kiroManagementMethod = provider === 'kiro' ? (0, auth_types_1.toKiroManagementMethod)(kiroMethod) : null;
|
|
@@ -844,12 +846,20 @@ router.post('/:provider/start-url', async (req, res) => {
|
|
|
844
846
|
const gitlabQuery = provider === 'gitlab' && gitlabBaseUrl
|
|
845
847
|
? `&base_url=${encodeURIComponent(gitlabBaseUrl)}`
|
|
846
848
|
: '';
|
|
849
|
+
startPath = `/v0/management/${authUrlProvider}-auth-url?is_webui=true${kiroQuery}${gitlabQuery}`;
|
|
847
850
|
// Call CLIProxyAPI to start OAuth and get auth URL
|
|
848
851
|
// CLIProxyAPI management routes are under /v0/management prefix
|
|
849
|
-
const response = await fetch((0, proxy_target_resolver_1.buildProxyUrl)(target,
|
|
852
|
+
const response = await fetch((0, proxy_target_resolver_1.buildProxyUrl)(target, startPath), {
|
|
853
|
+
headers: (0, proxy_target_resolver_1.buildManagementHeaders)(target),
|
|
854
|
+
});
|
|
850
855
|
if (!response.ok) {
|
|
851
856
|
const error = await response.text();
|
|
852
|
-
|
|
857
|
+
const guidance = (0, oauth_start_failure_guidance_1.buildOAuthStartFailureGuidance)(provider, {
|
|
858
|
+
target,
|
|
859
|
+
startPath,
|
|
860
|
+
cause: error || `HTTP ${response.status}`,
|
|
861
|
+
});
|
|
862
|
+
res.status(response.status).json(guidance);
|
|
853
863
|
return;
|
|
854
864
|
}
|
|
855
865
|
const data = (await response.json());
|
|
@@ -891,7 +901,24 @@ router.post('/:provider/start-url', async (req, res) => {
|
|
|
891
901
|
});
|
|
892
902
|
}
|
|
893
903
|
catch (error) {
|
|
894
|
-
|
|
904
|
+
if (error instanceof SyntaxError) {
|
|
905
|
+
console.error(`[cliproxy-auth-routes] Invalid OAuth start response for provider=${provider}: ${error.message}`);
|
|
906
|
+
res.status(502).json({
|
|
907
|
+
error: 'cliproxy_oauth_start_invalid_response',
|
|
908
|
+
provider,
|
|
909
|
+
message: 'CLIProxyAPI returned an invalid OAuth start response.',
|
|
910
|
+
details: error.message,
|
|
911
|
+
});
|
|
912
|
+
return;
|
|
913
|
+
}
|
|
914
|
+
const authUrlProvider = auth_types_1.CLIPROXY_AUTH_URL_PROVIDER_MAP[provider] || provider;
|
|
915
|
+
const guidance = (0, oauth_start_failure_guidance_1.buildOAuthStartFailureGuidance)(provider, {
|
|
916
|
+
target,
|
|
917
|
+
startPath: startPath ?? `/v0/management/${authUrlProvider}-auth-url?is_webui=true`,
|
|
918
|
+
cause: error,
|
|
919
|
+
});
|
|
920
|
+
console.error(`[cliproxy-auth-routes] ${guidance.message} ${guidance.details}`);
|
|
921
|
+
res.status(503).json(guidance);
|
|
895
922
|
}
|
|
896
923
|
});
|
|
897
924
|
/**
|