@kaitranntt/ccs 7.65.3 → 7.66.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -750
- package/dist/api/services/profile-lifecycle-service.d.ts.map +1 -1
- package/dist/api/services/profile-lifecycle-service.js +4 -0
- package/dist/api/services/profile-lifecycle-service.js.map +1 -1
- package/dist/api/services/profile-writer.d.ts.map +1 -1
- package/dist/api/services/profile-writer.js +3 -0
- package/dist/api/services/profile-writer.js.map +1 -1
- package/dist/auth/auth-commands.d.ts +1 -0
- package/dist/auth/auth-commands.d.ts.map +1 -1
- package/dist/auth/auth-commands.js +11 -0
- package/dist/auth/auth-commands.js.map +1 -1
- package/dist/auth/commands/backup-command.d.ts +3 -0
- package/dist/auth/commands/backup-command.d.ts.map +1 -0
- package/dist/auth/commands/backup-command.js +126 -0
- package/dist/auth/commands/backup-command.js.map +1 -0
- package/dist/auth/commands/index.d.ts +1 -0
- package/dist/auth/commands/index.d.ts.map +1 -1
- package/dist/auth/commands/index.js +3 -1
- package/dist/auth/commands/index.js.map +1 -1
- package/dist/auth/profile-continuity-inheritance.d.ts +1 -0
- package/dist/auth/profile-continuity-inheritance.d.ts.map +1 -1
- package/dist/auth/profile-continuity-inheritance.js +10 -6
- package/dist/auth/profile-continuity-inheritance.js.map +1 -1
- package/dist/auth/profile-detector.d.ts +9 -1
- package/dist/auth/profile-detector.d.ts.map +1 -1
- package/dist/auth/profile-detector.js +35 -0
- package/dist/auth/profile-detector.js.map +1 -1
- package/dist/auth/resume-lane-diagnostics.d.ts +21 -0
- package/dist/auth/resume-lane-diagnostics.d.ts.map +1 -0
- package/dist/auth/resume-lane-diagnostics.js +146 -0
- package/dist/auth/resume-lane-diagnostics.js.map +1 -0
- package/dist/auth/resume-lane-warning.d.ts +9 -0
- package/dist/auth/resume-lane-warning.d.ts.map +1 -0
- package/dist/auth/resume-lane-warning.js +60 -0
- package/dist/auth/resume-lane-warning.js.map +1 -0
- package/dist/ccs.js +82 -7
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/auth/auth-types.d.ts +29 -6
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/auth-types.js +58 -10
- package/dist/cliproxy/auth/auth-types.js.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts +9 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +196 -45
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/oauth-process.d.ts +13 -1
- package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-process.js +262 -17
- package/dist/cliproxy/auth/oauth-process.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts +3 -0
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +19 -1
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts +5 -0
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +138 -12
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts +10 -0
- package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +1 -0
- package/dist/cliproxy/gemini-cli-quota-normalizer.js +122 -0
- package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +1 -0
- package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +1 -1
- package/dist/cliproxy/quota-fetcher-gemini-cli.js +133 -92
- package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +1 -1
- package/dist/cliproxy/quota-types.d.ts +8 -0
- package/dist/cliproxy/quota-types.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-settings.js +11 -0
- package/dist/cliproxy/services/variant-settings.js.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/quota-subcommand.js +10 -1
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
- package/dist/commands/command-catalog.d.ts +39 -0
- package/dist/commands/command-catalog.d.ts.map +1 -0
- package/dist/commands/command-catalog.js +299 -0
- package/dist/commands/command-catalog.js.map +1 -0
- package/dist/commands/completion-backend.d.ts +14 -0
- package/dist/commands/completion-backend.d.ts.map +1 -0
- package/dist/commands/completion-backend.js +216 -0
- package/dist/commands/completion-backend.js.map +1 -0
- package/dist/commands/cursor-command-display.d.ts.map +1 -1
- package/dist/commands/cursor-command-display.js +25 -5
- package/dist/commands/cursor-command-display.js.map +1 -1
- package/dist/commands/cursor-command.d.ts +1 -3
- package/dist/commands/cursor-command.d.ts.map +1 -1
- package/dist/commands/cursor-command.js +3 -15
- package/dist/commands/cursor-command.js.map +1 -1
- package/dist/commands/help-command.d.ts +4 -3
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +209 -503
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/install-command.d.ts.map +1 -1
- package/dist/commands/install-command.js +16 -3
- package/dist/commands/install-command.js.map +1 -1
- package/dist/commands/root-command-router.d.ts +2 -0
- package/dist/commands/root-command-router.d.ts.map +1 -1
- package/dist/commands/root-command-router.js +13 -13
- package/dist/commands/root-command-router.js.map +1 -1
- package/dist/commands/shell-completion-command.d.ts +1 -0
- package/dist/commands/shell-completion-command.d.ts.map +1 -1
- package/dist/commands/shell-completion-command.js +27 -11
- package/dist/commands/shell-completion-command.js.map +1 -1
- package/dist/copilot/copilot-executor.d.ts +2 -0
- package/dist/copilot/copilot-executor.d.ts.map +1 -1
- package/dist/copilot/copilot-executor.js +36 -4
- package/dist/copilot/copilot-executor.js.map +1 -1
- package/dist/cursor/constants.d.ts +3 -0
- package/dist/cursor/constants.d.ts.map +1 -0
- package/dist/cursor/constants.js +20 -0
- package/dist/cursor/constants.js.map +1 -0
- package/dist/cursor/cursor-models.d.ts.map +1 -1
- package/dist/cursor/cursor-models.js +2 -0
- package/dist/cursor/cursor-models.js.map +1 -1
- package/dist/cursor/cursor-profile-executor.d.ts +10 -0
- package/dist/cursor/cursor-profile-executor.d.ts.map +1 -0
- package/dist/cursor/cursor-profile-executor.js +158 -0
- package/dist/cursor/cursor-profile-executor.js.map +1 -0
- package/dist/cursor/cursor-translator.d.ts +22 -11
- package/dist/cursor/cursor-translator.d.ts.map +1 -1
- package/dist/cursor/cursor-translator.js +254 -75
- package/dist/cursor/cursor-translator.js.map +1 -1
- package/dist/cursor/index.d.ts +1 -0
- package/dist/cursor/index.d.ts.map +1 -1
- package/dist/cursor/index.js +4 -1
- package/dist/cursor/index.js.map +1 -1
- package/dist/delegation/headless-executor.d.ts.map +1 -1
- package/dist/delegation/headless-executor.js +79 -2
- package/dist/delegation/headless-executor.js.map +1 -1
- package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
- package/dist/management/checks/image-analysis-check.js +4 -5
- package/dist/management/checks/image-analysis-check.js.map +1 -1
- package/dist/management/instance-manager.js +1 -1
- package/dist/management/instance-manager.js.map +1 -1
- package/dist/shared/claude-extension-setup.d.ts.map +1 -1
- package/dist/shared/claude-extension-setup.js +36 -16
- package/dist/shared/claude-extension-setup.js.map +1 -1
- package/dist/targets/target-runtime-compatibility.d.ts.map +1 -1
- package/dist/targets/target-runtime-compatibility.js +6 -0
- package/dist/targets/target-runtime-compatibility.js.map +1 -1
- package/dist/types/profile.d.ts +1 -1
- package/dist/types/profile.d.ts.map +1 -1
- package/dist/ui/assets/accounts-jW1C1XCz.js +1 -0
- package/dist/ui/assets/{alert-dialog-D0EFRcfB.js → alert-dialog-9ra2FBXt.js} +1 -1
- package/dist/ui/assets/{api-DhM3BYXr.js → api-B1wB-xCb.js} +1 -1
- package/dist/ui/assets/{auth-section-DVp8FQGm.js → auth-section-L6FxRKHW.js} +1 -1
- package/dist/ui/assets/{backups-section-CRo0NZkA.js → backups-section-yDahh7vx.js} +1 -1
- package/dist/ui/assets/{channels-uZ_9CBqO.js → channels-Detih8L-.js} +1 -1
- package/dist/ui/assets/{checkbox-32DNqW_Q.js → checkbox-BBnsYp-P.js} +1 -1
- package/dist/ui/assets/{claude-extension-BfXlz5gV.js → claude-extension-C_krIRVF.js} +1 -1
- package/dist/ui/assets/cliproxy-H2_ozRn-.js +3 -0
- package/dist/ui/assets/{cliproxy-ai-providers-5SHLMHiy.js → cliproxy-ai-providers-CtVQymuP.js} +1 -1
- package/dist/ui/assets/cliproxy-control-panel-zu9VU_Qf.js +1 -0
- package/dist/ui/assets/{codex-CRUSpjsu.js → codex-Cxzll9c5.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-DVf5ZmCZ.js → confirm-dialog-B2ThVV1S.js} +1 -1
- package/dist/ui/assets/{copilot-BZrihl_Z.js → copilot-DXUM1KLv.js} +1 -1
- package/dist/ui/assets/{cursor-BP4nbEk_.js → cursor-CrNFzSu5.js} +1 -1
- package/dist/ui/assets/{droid-BG92rdM2.js → droid-RJdLxGub.js} +2 -2
- package/dist/ui/assets/{globalenv-section-Cf6dKgSf.js → globalenv-section-Bv9iXrlD.js} +1 -1
- package/dist/ui/assets/{health-BTy1UZs3.js → health-CgOSX-UJ.js} +1 -1
- package/dist/ui/assets/icons-B9oTjo-t.js +1 -0
- package/dist/ui/assets/{index-BVeN0dIB.js → index-33V44ka2.js} +1 -1
- package/dist/ui/assets/{index-DuRYaONg.js → index-C6BzhDNJ.js} +1 -1
- package/dist/ui/assets/{index-wg7UtkFv.js → index-CK2D-leN.js} +1 -1
- package/dist/ui/assets/index-CknHGRYp.css +1 -0
- package/dist/ui/assets/{index-N2ZSJurX.js → index-D-9haA2-.js} +1 -1
- package/dist/ui/assets/index-DEb_1YYh.js +69 -0
- package/dist/ui/assets/{index-DHrTq-0n.js → index-K0k4WFge.js} +1 -1
- package/dist/ui/assets/{masked-input-DX9bedLy.js → masked-input-DUpF2a8k.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-DVDMuZK5.js → proxy-status-widget-Dswa7OEL.js} +1 -1
- package/dist/ui/assets/{radix-ui-C98W0NRG.js → radix-ui-Zb8sVEtn.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-Dkt5E6Z_.js → raw-json-settings-editor-panel-CrjDrQgJ.js} +1 -1
- package/dist/ui/assets/{searchable-select-BP3Q1-Yn.js → searchable-select-Cl3WCoVu.js} +1 -1
- package/dist/ui/assets/{separator-BLGGUlh9.js → separator-B_mZud18.js} +1 -1
- package/dist/ui/assets/{shared-G0XRyLig.js → shared-CEbDLM0x.js} +1 -1
- package/dist/ui/assets/{table-B4lRrWC-.js → table-B7Mqppr5.js} +1 -1
- package/dist/ui/assets/{tanstack-CfKik0yL.js → tanstack-DWm6aJ-G.js} +1 -1
- package/dist/ui/assets/{updates--A2Sdo7N.js → updates-CBtsQjS3.js} +1 -1
- package/dist/ui/index.html +5 -5
- package/dist/utils/config-manager.d.ts +5 -0
- package/dist/utils/config-manager.d.ts.map +1 -1
- package/dist/utils/config-manager.js +10 -1
- package/dist/utils/config-manager.js.map +1 -1
- package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +26 -0
- package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
- package/dist/utils/hooks/get-image-analysis-hook-env.js +79 -1
- package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
- package/dist/utils/hooks/image-analysis-backend-resolver.d.ts.map +1 -1
- package/dist/utils/hooks/image-analysis-backend-resolver.js +13 -5
- package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
- package/dist/utils/hooks/image-analysis-runtime-status.d.ts +2 -0
- package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
- package/dist/utils/hooks/image-analysis-runtime-status.js +15 -11
- package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
- package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -1
- package/dist/utils/hooks/image-analyzer-hook-installer.js +60 -27
- package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -1
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -1
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +3 -0
- package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -1
- package/dist/utils/hooks/index.d.ts +2 -1
- package/dist/utils/hooks/index.d.ts.map +1 -1
- package/dist/utils/hooks/index.js +14 -7
- package/dist/utils/hooks/index.js.map +1 -1
- package/dist/utils/image-analysis/claude-tool-args.d.ts +6 -0
- package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -0
- package/dist/utils/image-analysis/claude-tool-args.js +65 -0
- package/dist/utils/image-analysis/claude-tool-args.js.map +1 -0
- package/dist/utils/image-analysis/index.d.ts +4 -0
- package/dist/utils/image-analysis/index.d.ts.map +1 -1
- package/dist/utils/image-analysis/index.js +20 -1
- package/dist/utils/image-analysis/index.js.map +1 -1
- package/dist/utils/image-analysis/mcp-installer.d.ts +18 -0
- package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -0
- package/dist/utils/image-analysis/mcp-installer.js +447 -0
- package/dist/utils/image-analysis/mcp-installer.js.map +1 -0
- package/dist/web-server/routes/account-routes.d.ts.map +1 -1
- package/dist/web-server/routes/account-routes.js +14 -2
- package/dist/web-server/routes/account-routes.js.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts +8 -0
- package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-auth-routes.js +141 -11
- package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
- package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
- package/dist/web-server/routes/image-analysis-routes.js +30 -5
- package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
- package/lib/hooks/image-analysis-runtime.cjs +469 -0
- package/lib/hooks/image-analyzer-transformer.cjs +27 -418
- package/lib/hooks/websearch-transformer.cjs +37 -2
- package/lib/mcp/ccs-image-analysis-server.cjs +440 -0
- package/package.json +1 -1
- package/scripts/completion/README.md +55 -131
- package/scripts/completion/ccs.bash +22 -190
- package/scripts/completion/ccs.fish +19 -245
- package/scripts/completion/ccs.ps1 +37 -427
- package/scripts/completion/ccs.zsh +27 -305
- package/dist/ui/assets/accounts-BHEYnq6b.js +0 -1
- package/dist/ui/assets/cliproxy-DjNY9H-U.js +0 -3
- package/dist/ui/assets/cliproxy-control-panel-Zax_m1AC.js +0 -1
- package/dist/ui/assets/icons-CeH5899d.js +0 -1
- package/dist/ui/assets/index-B6SrL1O-.css +0 -1
- package/dist/ui/assets/index-Corv1lSo.js +0 -69
|
@@ -22,530 +22,236 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.handleHelpCommand = void 0;
|
|
27
|
-
const
|
|
28
|
-
const path = __importStar(require("path"));
|
|
29
|
+
exports.getRootHelpCatalogEntries = exports.getRootHelpVisibleCommands = exports.handleHelpRoute = exports.handleHelpCommand = void 0;
|
|
30
|
+
const package_json_1 = __importDefault(require("../../package.json"));
|
|
29
31
|
const ui_1 = require("../utils/ui");
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
* ═══ TITLE ═══
|
|
40
|
-
* Subtitle line 1
|
|
41
|
-
* Subtitle line 2
|
|
42
|
-
*
|
|
43
|
-
* command Description
|
|
44
|
-
*/
|
|
45
|
-
function printMajorSection(title, subtitles, items, writeLine = console.log) {
|
|
46
|
-
// Section header with ═══ borders
|
|
47
|
-
writeLine((0, ui_1.sectionHeader)(title));
|
|
48
|
-
// Subtitles on separate lines (dim)
|
|
49
|
-
for (const subtitle of subtitles) {
|
|
50
|
-
writeLine(` ${(0, ui_1.dim)(subtitle)}`);
|
|
51
|
-
}
|
|
52
|
-
// Empty line before items
|
|
53
|
-
writeLine('');
|
|
54
|
-
// Calculate max command length for alignment
|
|
55
|
-
const maxCmdLen = Math.max(...items.map(([cmd]) => cmd.length));
|
|
56
|
-
for (const [cmd, desc] of items) {
|
|
57
|
-
const paddedCmd = cmd.padEnd(maxCmdLen + 2);
|
|
58
|
-
writeLine(` ${(0, ui_1.color)(paddedCmd, 'command')} ${desc}`);
|
|
32
|
+
const command_catalog_1 = require("./command-catalog");
|
|
33
|
+
function getTopicSummary(name) {
|
|
34
|
+
return command_catalog_1.ROOT_HELP_TOPICS.find((topic) => topic.name === name)?.summary || '';
|
|
35
|
+
}
|
|
36
|
+
function writeCommandTable(title, entries, writeLine) {
|
|
37
|
+
writeLine((0, ui_1.subheader)(title));
|
|
38
|
+
const maxWidth = Math.max(...entries.map((entry) => entry.name.length));
|
|
39
|
+
for (const entry of entries) {
|
|
40
|
+
writeLine(` ${(0, ui_1.color)(entry.name.padEnd(maxWidth + 2), 'command')} ${entry.summary}`);
|
|
59
41
|
}
|
|
60
|
-
// Extra spacing after section
|
|
61
42
|
writeLine('');
|
|
62
43
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
44
|
+
function writeGroupedCommands(group, writeLine) {
|
|
45
|
+
const entries = (0, command_catalog_1.getPublicRootCommands)()
|
|
46
|
+
.filter((entry) => entry.group === group)
|
|
47
|
+
.map((entry) => ({ name: entry.name, summary: entry.summary }));
|
|
48
|
+
const titles = {
|
|
49
|
+
start: 'Start Here',
|
|
50
|
+
manage: 'Profile Management',
|
|
51
|
+
operations: 'Operations',
|
|
52
|
+
runtime: 'Compatible Runtimes',
|
|
53
|
+
};
|
|
54
|
+
writeCommandTable(titles[group], entries, writeLine);
|
|
55
|
+
}
|
|
56
|
+
async function showProfilesHelp(writeLine) {
|
|
57
|
+
await (0, ui_1.initUI)();
|
|
58
|
+
writeLine((0, ui_1.header)('CCS Profiles Help'));
|
|
59
|
+
writeLine('');
|
|
60
|
+
writeCommandTable('Profile Types', [
|
|
61
|
+
{ name: 'ccs auth create <name>', summary: 'Concurrent Claude account profile' },
|
|
62
|
+
{ name: 'ccs api create', summary: 'API-backed settings profile' },
|
|
63
|
+
{ name: 'ccs cliproxy create <name>', summary: 'Named CLIProxy variant profile' },
|
|
64
|
+
{ name: 'ccs env <profile>', summary: 'Export an existing profile for other tools' },
|
|
65
|
+
], writeLine);
|
|
66
|
+
writeCommandTable('Examples', command_catalog_1.ROOT_PROFILE_EXAMPLES, writeLine);
|
|
67
|
+
writeLine(` ${(0, ui_1.dim)('Deep help: ccs auth --help | ccs api --help | ccs cliproxy --help')}`);
|
|
79
68
|
writeLine('');
|
|
80
69
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
70
|
+
async function showProvidersHelp(writeLine) {
|
|
71
|
+
await (0, ui_1.initUI)();
|
|
72
|
+
writeLine((0, ui_1.header)('CCS Providers Help'));
|
|
73
|
+
writeLine('');
|
|
74
|
+
writeCommandTable('Built-in OAuth Providers', command_catalog_1.BUILTIN_PROVIDER_SHORTCUTS, writeLine);
|
|
75
|
+
writeCommandTable('Common Setup Paths', [
|
|
76
|
+
{
|
|
77
|
+
name: 'ccs <provider> --auth',
|
|
78
|
+
summary: 'Authenticate a provider account without launching',
|
|
79
|
+
},
|
|
80
|
+
{ name: 'ccs api create --preset <id>', summary: 'Create an API-backed provider profile' },
|
|
81
|
+
{ name: 'ccs config', summary: 'Use the dashboard for provider and model setup' },
|
|
82
|
+
{ name: 'ccs help kiro', summary: 'Kiro-specific auth methods and IDC flags' },
|
|
83
|
+
], writeLine);
|
|
84
|
+
writeLine(` ${(0, ui_1.dim)('Deep help: ccs cliproxy --help | ccs api --help')}`);
|
|
95
85
|
writeLine('');
|
|
96
86
|
}
|
|
97
|
-
|
|
98
|
-
* Display comprehensive help information for CCS (Claude Code Switch)
|
|
99
|
-
*/
|
|
100
|
-
async function handleHelpCommand(writeLine = console.log) {
|
|
101
|
-
// Initialize UI (if not already)
|
|
87
|
+
async function showKiroHelp(writeLine) {
|
|
102
88
|
await (0, ui_1.initUI)();
|
|
103
|
-
|
|
104
|
-
// Each letter: C=╔═╗/║ /╚═╝, C=╔═╗/║ /╚═╝, S=╔═╗/╚═╗/╚═╝
|
|
105
|
-
const logo = `
|
|
106
|
-
╔═╗ ╔═╗ ╔═╗
|
|
107
|
-
║ ║ ╚═╗ v${VERSION}
|
|
108
|
-
╚═╝ ╚═╝ ╚═╝
|
|
109
|
-
|
|
110
|
-
Claude Code Profile & Model Switcher
|
|
111
|
-
|
|
112
|
-
Run ${(0, ui_1.color)('ccs config', 'command')} for web dashboard`.trim();
|
|
113
|
-
writeLine((0, ui_1.box)(logo, {
|
|
114
|
-
padding: 1,
|
|
115
|
-
borderStyle: 'round',
|
|
116
|
-
titleAlignment: 'center',
|
|
117
|
-
}));
|
|
89
|
+
writeLine((0, ui_1.header)('CCS Kiro Help'));
|
|
118
90
|
writeLine('');
|
|
119
|
-
|
|
120
|
-
const [dirSource] = (0, config_manager_1.getCcsDirSource)();
|
|
121
|
-
const dirDisplay = dirSource === 'default' ? '~/.ccs' : (0, config_manager_1.getCcsDir)();
|
|
122
|
-
// Usage section
|
|
123
|
-
writeLine((0, ui_1.subheader)('Usage:'));
|
|
124
|
-
writeLine(` ${(0, ui_1.color)('ccs', 'command')} [profile] [claude-args...]`);
|
|
125
|
-
writeLine(` ${(0, ui_1.color)('ccs', 'command')} [flags]`);
|
|
91
|
+
writeLine(' Kiro supports Builder ID, IDC, and management-only social OAuth flows.');
|
|
126
92
|
writeLine('');
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
'
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
['', ''], // Spacer
|
|
142
|
-
['ccs api create --preset anthropic', 'Anthropic direct API key (sk-ant-...)'],
|
|
143
|
-
[
|
|
144
|
-
'ccs api create --cliproxy-provider gemini',
|
|
145
|
-
'Create routed API profile from CLIProxy Gemini',
|
|
146
|
-
],
|
|
147
|
-
['ccs api create', 'Create custom API profile'],
|
|
148
|
-
['ccs api discover --register', 'Discover/register orphan settings files'],
|
|
149
|
-
['ccs api copy <src> <dest>', 'Duplicate API profile'],
|
|
150
|
-
['ccs api export <name>', 'Export profile bundle'],
|
|
151
|
-
['ccs api import <file>', 'Import profile bundle'],
|
|
152
|
-
['ccs api remove', 'Remove an API profile'],
|
|
153
|
-
['ccs api list', 'List all API profiles'],
|
|
154
|
-
], writeLine);
|
|
155
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
156
|
-
// MAJOR SECTION 2: Account Management
|
|
157
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
158
|
-
printMajorSection('Account Management', ['Run multiple Claude accounts concurrently'], [
|
|
159
|
-
['ccs auth --help', 'Show account management commands'],
|
|
160
|
-
[
|
|
161
|
-
'ccs auth create <name>',
|
|
162
|
-
'Create account profile (supports --bare, shared groups, --deeper-continuity)',
|
|
163
|
-
],
|
|
164
|
-
['ccs config', 'Dashboard: Accounts table can edit context mode/group/continuity depth'],
|
|
165
|
-
[
|
|
166
|
-
'~/.ccs/config.yaml',
|
|
167
|
-
'Optional: continuity.inherit_from_account maps API/CLIProxy/copilot/default profiles to an account context',
|
|
168
|
-
],
|
|
169
|
-
['ccs auth list', 'List all account profiles'],
|
|
170
|
-
['ccs auth default <name>', 'Set default profile'],
|
|
171
|
-
['ccs auth reset-default', 'Restore original CCS default'],
|
|
172
|
-
['ccs cliproxy auth claude', 'Alternative: authenticate Claude account pool via CLIProxy'],
|
|
173
|
-
], writeLine);
|
|
174
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
175
|
-
// MAJOR SECTION 3: CLI Proxy (OAuth Providers)
|
|
176
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
177
|
-
printMajorSection('CLI Proxy Plus (OAuth Providers)', [
|
|
178
|
-
'Zero-config OAuth authentication via CLIProxy Plus',
|
|
179
|
-
'First run: Browser opens for authentication, then model selection',
|
|
180
|
-
'Settings: ~/.ccs/{provider}.settings.json (created after auth)',
|
|
181
|
-
'Safety: do not reuse one Google account across "ccs gemini" and "ccs agy" (issue #509)',
|
|
182
|
-
'Antigravity requires multi-step responsibility confirmation (issue #509)',
|
|
183
|
-
'If you want to keep Google AI access, do not continue this shared-account setup',
|
|
184
|
-
'CCS is as-is and does not take responsibility for account bans/access loss',
|
|
185
|
-
], [
|
|
186
|
-
['ccs gemini', 'Google Gemini (gemini-2.5-pro or 3-pro)'],
|
|
187
|
-
['ccs codex', 'OpenAI Codex (supports -medium/-high/-xhigh model suffixes)'],
|
|
188
|
-
['ccs agy', 'Antigravity (Claude/Gemini models)'],
|
|
189
|
-
['ccs qwen', 'Qwen Code OAuth (CLIProxy)'],
|
|
190
|
-
['ccs kimi', 'Kimi (Moonshot AI K2/K2.5 models)'],
|
|
191
|
-
['ccs kiro', 'Kiro (AWS CodeWhisperer Claude models)'],
|
|
192
|
-
['ccs ghcp', 'GitHub Copilot (OAuth via CLIProxy Plus)'],
|
|
193
|
-
['', ''], // Spacer
|
|
194
|
-
['ccs <provider> --auth', 'Authenticate only'],
|
|
195
|
-
['ccs <provider> --auth --add', 'Add another account'],
|
|
196
|
-
[
|
|
197
|
-
'ccs <provider> --paste-callback',
|
|
198
|
-
'Show auth URL and prompt for callback paste (cross-browser)',
|
|
199
|
-
],
|
|
200
|
-
['ccs <provider> --accounts', 'List all accounts'],
|
|
201
|
-
['ccs <provider> --use <nickname-or-id>', 'Switch to account'],
|
|
202
|
-
['ccs <provider> --config', 'Change model (agy, gemini)'],
|
|
203
|
-
[
|
|
204
|
-
'ccs agy --accept-agr-risk',
|
|
205
|
-
'Bypass interactive Antigravity confirmation (you accept full responsibility)',
|
|
206
|
-
],
|
|
207
|
-
[
|
|
208
|
-
'ccs <provider> --thinking <value>',
|
|
209
|
-
'Set thinking budget (low/medium/high/xhigh/auto/off or number)',
|
|
210
|
-
],
|
|
211
|
-
['ccs codex --effort <level>', 'Set codex reasoning effort (minimal/low/medium/high/xhigh)'],
|
|
212
|
-
['ccs <provider> --1m', 'Request explicit 1M context when the selected model supports [1m]'],
|
|
213
|
-
['ccs <provider> --no-1m', 'Force standard context / clear [1m]'],
|
|
214
|
-
['ccs <provider> --logout', 'Clear authentication'],
|
|
215
|
-
['ccs <provider> --headless', 'Headless auth (for SSH)'],
|
|
216
|
-
['ccs <provider> --port-forward', 'Force port-forwarding mode (skip prompt)'],
|
|
217
|
-
['ccs kiro --auth --kiro-auth-method aws', 'Kiro via AWS Builder ID (device code)'],
|
|
218
|
-
['ccs kiro --auth --kiro-auth-method aws-authcode', 'Kiro via AWS auth code flow'],
|
|
219
|
-
['ccs kiro --auth --kiro-auth-method google', 'Kiro via Google OAuth'],
|
|
220
|
-
['ccs kiro --auth --kiro-auth-method github', 'Kiro via GitHub OAuth (Dashboard flow)'],
|
|
221
|
-
['ccs kiro --import', 'Import token from Kiro IDE'],
|
|
222
|
-
['ccs kiro --incognito', 'Use incognito browser (default: normal)'],
|
|
223
|
-
['ccs codex "explain code"', 'Use with prompt'],
|
|
224
|
-
], writeLine);
|
|
225
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
226
|
-
// MAJOR SECTION 4: GitHub Copilot Integration (copilot-api)
|
|
227
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
228
|
-
printMajorSection('GitHub Copilot Integration (copilot-api)', [
|
|
229
|
-
'Use your GitHub Copilot subscription with Claude Code via copilot-api',
|
|
230
|
-
'Requires: npm install -g copilot-api',
|
|
231
|
-
'Note: For OAuth-based access, use ccs ghcp instead',
|
|
232
|
-
], [
|
|
233
|
-
['ccs copilot', 'Use Copilot via copilot-api daemon'],
|
|
234
|
-
['ccs copilot auth', 'Authenticate with GitHub'],
|
|
235
|
-
['ccs copilot status', 'Show integration status'],
|
|
236
|
-
['ccs copilot models', 'List available models'],
|
|
237
|
-
['ccs copilot usage', 'Show Copilot quota usage'],
|
|
238
|
-
['ccs copilot start', 'Start copilot-api daemon'],
|
|
239
|
-
['ccs copilot stop', 'Stop copilot-api daemon'],
|
|
240
|
-
['ccs copilot enable', 'Enable integration'],
|
|
241
|
-
['ccs copilot disable', 'Disable integration'],
|
|
242
|
-
], writeLine);
|
|
243
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
244
|
-
// MAJOR SECTION 5: Cursor IDE Integration
|
|
245
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
246
|
-
printMajorSection('Cursor IDE Integration', [
|
|
247
|
-
'Use Cursor IDE with Claude Code via cursor proxy daemon',
|
|
248
|
-
'Auto-detects token from Cursor installation',
|
|
249
|
-
], [
|
|
250
|
-
['ccs cursor <cmd>', 'Use Cursor IDE integration'],
|
|
251
|
-
['ccs cursor auth', 'Import Cursor token'],
|
|
252
|
-
['ccs cursor auth --manual --token <t> --machine-id <id>', 'Manual token import'],
|
|
253
|
-
['ccs cursor status', 'Show connection status'],
|
|
254
|
-
['ccs cursor models', 'List available models'],
|
|
255
|
-
['ccs cursor start', 'Start proxy daemon'],
|
|
256
|
-
['ccs cursor stop', 'Stop proxy daemon'],
|
|
257
|
-
['ccs cursor enable', 'Enable cursor integration'],
|
|
258
|
-
['ccs cursor disable', 'Disable cursor integration'],
|
|
259
|
-
], writeLine);
|
|
260
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
261
|
-
// SUB-SECTIONS (simpler styling)
|
|
262
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
263
|
-
// Delegation
|
|
264
|
-
printSubSection('Delegation (inside Claude Code CLI)', [
|
|
265
|
-
['/ccs "task"', 'Delegate task (auto-selects profile)'],
|
|
266
|
-
['/ccs --glm "task"', 'Force GLM-5 for simple tasks'],
|
|
267
|
-
['/ccs --kimi "task"', 'Force Kimi OAuth for long context'],
|
|
268
|
-
['/ccs --km "task"', 'Force Kimi API key for long context'],
|
|
269
|
-
['/ccs:continue "follow-up"', 'Continue last delegation session'],
|
|
270
|
-
], writeLine);
|
|
271
|
-
// Delegation CLI Flags (Claude Code passthrough)
|
|
272
|
-
printSubSection('Delegation Flags (Claude Code passthrough)', [
|
|
273
|
-
['--max-turns <n>', 'Limit agentic turns (prevents loops)'],
|
|
274
|
-
['--fallback-model <model>', 'Auto-fallback on overload (sonnet)'],
|
|
275
|
-
['--agents <json>', 'Inject dynamic subagents'],
|
|
276
|
-
['--betas <features>', 'Enable experimental features'],
|
|
277
|
-
['--allowedTools <list>', 'Restrict available tools'],
|
|
278
|
-
['--disallowedTools <list>', 'Block specific tools'],
|
|
279
|
-
], writeLine);
|
|
280
|
-
// Diagnostics
|
|
281
|
-
printSubSection('Diagnostics', [
|
|
282
|
-
['ccs setup', 'First-time setup wizard'],
|
|
283
|
-
['ccs doctor', 'Run health check and diagnostics'],
|
|
284
|
-
['ccs cleanup', 'Remove old CLIProxy logs'],
|
|
285
|
-
['ccs config', 'Open web dashboard (includes Claude IDE Extension setup page)'],
|
|
286
|
-
['ccs config auth setup', 'Configure dashboard login'],
|
|
287
|
-
['ccs config auth show', 'Show dashboard auth status'],
|
|
288
|
-
['ccs config channels', 'Show Official Channels status'],
|
|
289
|
-
[
|
|
290
|
-
'ccs config channels --set telegram,discord',
|
|
291
|
-
'Auto-add Telegram + Discord on supported native Claude runs',
|
|
292
|
-
],
|
|
293
|
-
['ccs config channels --set-token telegram=<token>', 'Save TELEGRAM_BOT_TOKEN'],
|
|
294
|
-
['ccs config image-analysis', 'Show image analysis settings'],
|
|
295
|
-
['ccs config image-analysis --enable', 'Enable image analysis'],
|
|
296
|
-
['ccs config thinking', 'Show thinking/reasoning settings'],
|
|
297
|
-
['ccs config thinking --mode auto', 'Set thinking mode'],
|
|
298
|
-
['ccs config thinking --clear-provider-override codex', 'Clear provider overrides'],
|
|
299
|
-
['ccs config --port 3000', 'Use specific port'],
|
|
300
|
-
['ccs config --host 0.0.0.0', 'Force all-interface binding for remote devices'],
|
|
301
|
-
['ccs persist <profile>', 'Write profile setup to ~/.claude/settings.json'],
|
|
302
|
-
['ccs persist --list-backups', 'List available settings.json backups'],
|
|
303
|
-
['ccs persist --restore', 'Restore settings.json from latest backup'],
|
|
304
|
-
['ccs sync', 'Sync delegation commands and skills'],
|
|
305
|
-
['ccs update', 'Update CCS to latest version'],
|
|
306
|
-
['ccs update --force', 'Force reinstall current version'],
|
|
307
|
-
['ccs update --beta', 'Install from dev channel (unstable)'],
|
|
308
|
-
], writeLine);
|
|
309
|
-
// Environment export
|
|
310
|
-
printSubSection('Environment Export', [
|
|
311
|
-
['ccs env <profile>', 'Export env vars for third-party tools'],
|
|
312
|
-
['ccs env <profile> --format openai', 'OpenAI-compatible vars (OpenCode/Cursor)'],
|
|
313
|
-
['ccs env <profile> --format anthropic', 'Anthropic vars (default)'],
|
|
314
|
-
['ccs env <profile> --format raw', 'All effective env vars'],
|
|
315
|
-
[
|
|
316
|
-
'ccs env <profile> --format claude-extension --ide vscode',
|
|
317
|
-
'VS Code/Cursor Claude extension settings JSON',
|
|
318
|
-
],
|
|
319
|
-
[
|
|
320
|
-
'ccs env <profile> --format claude-extension --ide windsurf',
|
|
321
|
-
'Windsurf Claude extension settings JSON',
|
|
322
|
-
],
|
|
323
|
-
['ccs env <profile> --shell fish', 'Fish shell syntax'],
|
|
324
|
-
], writeLine);
|
|
325
|
-
// Flags
|
|
326
|
-
printSubSection('Flags', [
|
|
327
|
-
['--config-dir <path>', 'Use custom CCS config directory'],
|
|
328
|
-
['--target <cli>', 'Target CLI: claude (default), droid, codex (runtime-only)'],
|
|
329
|
-
['-h, --help', 'Show this help message'],
|
|
330
|
-
['-v, --version', 'Show version and installation info'],
|
|
331
|
-
['-sc, --shell-completion', 'Install shell auto-completion'],
|
|
332
|
-
], writeLine);
|
|
333
|
-
// Aliases
|
|
334
|
-
printSubSection('Aliases', [
|
|
335
|
-
['ccs-droid <profile> [args]', 'Explicit Droid runtime alias'],
|
|
336
|
-
['ccsd <profile> [args]', 'Legacy shortcut for: ccs-droid <profile> [args]'],
|
|
337
|
-
['ccs-codex <profile> [args]', 'Explicit Codex runtime alias'],
|
|
338
|
-
['ccsx <profile> [args]', 'Short alias for: ccs-codex <profile> [args]'],
|
|
339
|
-
['ccsxp [args]', 'Shortcut for: ccs codex --target codex [args]'],
|
|
340
|
-
], writeLine);
|
|
341
|
-
// Multi-target examples
|
|
342
|
-
printSubSection('Multi-Target', [
|
|
343
|
-
['ccs glm --target droid', 'Run GLM profile on Droid CLI'],
|
|
344
|
-
['ccs-droid glm', 'Same as above (explicit alias)'],
|
|
345
|
-
['ccsd glm', 'Legacy shortcut for ccs-droid'],
|
|
346
|
-
['ccs --target codex', 'Open a native Codex session with your existing ~/.codex setup'],
|
|
347
|
-
['ccs-codex', 'Same as above (explicit Codex alias)'],
|
|
348
|
-
['ccsx', 'Short alias for ccs-codex'],
|
|
349
|
-
['ccsxp "your prompt"', 'Run built-in CLIProxy Codex on native Codex CLI'],
|
|
350
|
-
['ccs codex --target codex', 'Explicit form of ccsxp'],
|
|
351
|
-
[
|
|
352
|
-
'ccs api create codex-api --cliproxy-provider codex',
|
|
353
|
-
'Create a routed API bridge that can also run on Codex',
|
|
354
|
-
],
|
|
355
|
-
['ccs codex-api --target codex', 'Run a Codex bridge profile on native Codex CLI'],
|
|
356
|
-
['ccs-droid codex', 'Run built-in CLIProxy Codex profile on Droid'],
|
|
357
|
-
['ccs-droid agy', 'Run built-in CLIProxy Antigravity profile on Droid'],
|
|
358
|
-
[
|
|
359
|
-
'ccs-droid codex exec --skip-permissions-unsafe "fix failing tests"',
|
|
360
|
-
'Pass through Droid exec mode',
|
|
361
|
-
],
|
|
362
|
-
[
|
|
363
|
-
'ccs-droid codex -m custom:gpt-5.3-codex "fix failing tests"',
|
|
364
|
-
'Auto-routes short exec flags',
|
|
365
|
-
],
|
|
366
|
-
[
|
|
367
|
-
'ccs-droid codex --skip-permissions-unsafe "fix failing tests"',
|
|
368
|
-
'Auto-routes to Droid exec when exec-only flags are detected',
|
|
369
|
-
],
|
|
370
|
-
[
|
|
371
|
-
'ccs cliproxy create my-codex --provider codex --target droid',
|
|
372
|
-
'Create CLIProxy variant with Droid as default target',
|
|
373
|
-
],
|
|
374
|
-
['ccs glm', 'Run GLM profile on Claude Code (default)'],
|
|
375
|
-
], writeLine);
|
|
376
|
-
printSubSection('Codex + CLIProxy', [
|
|
377
|
-
['ccsxp "your prompt"', 'Use the built-in CCS Codex provider shortcut on native Codex'],
|
|
378
|
-
['ccs config', 'Open Compatible -> Codex CLI for native Codex setup and diagnostics'],
|
|
379
|
-
[
|
|
380
|
-
'Default provider',
|
|
381
|
-
'Set to cliproxy if plain codex or a personal cxp alias should use CLIProxy',
|
|
382
|
-
],
|
|
383
|
-
['Model provider auth', 'Save cliproxy with env_key = "CLIPROXY_API_KEY"'],
|
|
384
|
-
], writeLine);
|
|
385
|
-
// Configuration
|
|
386
|
-
printConfigSection('Configuration', [
|
|
387
|
-
['Config File:', (0, unified_config_loader_1.isUnifiedMode)() ? `${dirDisplay}/config.yaml` : `${dirDisplay}/config.json`],
|
|
388
|
-
['Profiles:', `${dirDisplay}/profiles.json`],
|
|
389
|
-
['Instances:', `${dirDisplay}/instances/`],
|
|
390
|
-
['Settings:', `${dirDisplay}/*.settings.json`],
|
|
391
|
-
], writeLine);
|
|
392
|
-
// CLI Proxy management
|
|
393
|
-
printSubSection('CLI Proxy Plus Management', [
|
|
394
|
-
['ccs cliproxy', 'Show CLIProxy Plus status and version'],
|
|
395
|
-
['ccs cliproxy --help', 'Full CLIProxy Plus management help'],
|
|
396
|
-
['ccs cliproxy doctor', 'Quota diagnostics (Antigravity)'],
|
|
397
|
-
['ccs cliproxy --install <ver>', 'Install specific version (e.g., 6.6.6)'],
|
|
398
|
-
['ccs cliproxy --latest', 'Update to latest version'],
|
|
399
|
-
['', ''], // Spacer
|
|
400
|
-
['ccs cliproxy pause <p> <a>', 'Pause account from rotation'],
|
|
401
|
-
['ccs cliproxy resume <p> <a>', 'Resume paused account'],
|
|
402
|
-
['ccs cliproxy status', 'Show CLIProxy process status'],
|
|
403
|
-
['ccs cliproxy quota', 'Show quota/tier/pause status for all providers'],
|
|
404
|
-
['ccs cliproxy quota --provider <name>', 'Show quota/tier/pause status for one provider'],
|
|
93
|
+
writeCommandTable('Authentication Methods', [
|
|
94
|
+
{ name: 'ccs kiro --auth', summary: 'Default AWS Builder ID device-code flow' },
|
|
95
|
+
{
|
|
96
|
+
name: 'ccs kiro --auth --kiro-auth-method aws-authcode',
|
|
97
|
+
summary: 'AWS Builder ID auth-code flow via local callback server',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'ccs kiro --auth --kiro-auth-method idc',
|
|
101
|
+
summary: 'IAM Identity Center flow; requires IDC start URL',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'ccs config',
|
|
105
|
+
summary: 'Dashboard flow for GitHub OAuth and account management',
|
|
106
|
+
},
|
|
405
107
|
], writeLine);
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
108
|
+
writeCommandTable('Kiro Flags', [
|
|
109
|
+
{
|
|
110
|
+
name: '--kiro-auth-method <aws|aws-authcode|google|github|idc>',
|
|
111
|
+
summary: 'Select the Kiro auth method',
|
|
112
|
+
},
|
|
113
|
+
{ name: '--kiro-idc-start-url <url>', summary: 'Required IDC start URL when using `idc`' },
|
|
114
|
+
{ name: '--kiro-idc-region <region>', summary: 'Optional IDC region override' },
|
|
115
|
+
{ name: '--kiro-idc-flow <authcode|device>', summary: 'IDC flow type; defaults to authcode' },
|
|
116
|
+
{
|
|
117
|
+
name: '--paste-callback',
|
|
118
|
+
summary: 'Paste the final callback URL for callback-based CLI auth flows',
|
|
119
|
+
},
|
|
120
|
+
{ name: '--import', summary: 'Import an existing Kiro IDE token instead of starting OAuth' },
|
|
414
121
|
], writeLine);
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
122
|
+
writeCommandTable('Examples', [
|
|
123
|
+
{ name: 'ccs kiro --auth', summary: 'Start the default Builder ID device flow' },
|
|
124
|
+
{
|
|
125
|
+
name: 'ccs kiro --auth --kiro-auth-method aws-authcode --paste-callback',
|
|
126
|
+
summary: 'Use auth-code flow and paste the callback URL manually',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'ccs kiro --auth --kiro-auth-method idc --kiro-idc-start-url https://d-xxx.awsapps.com/start',
|
|
130
|
+
summary: 'Start IDC auth with the default authcode flow',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'ccs kiro --auth --kiro-auth-method idc --kiro-idc-start-url https://d-xxx.awsapps.com/start --kiro-idc-flow device',
|
|
134
|
+
summary: 'Use IDC device-code flow instead of authcode',
|
|
135
|
+
},
|
|
425
136
|
], writeLine);
|
|
426
|
-
|
|
427
|
-
printSubSection('Extended Thinking / Reasoning', [
|
|
428
|
-
['--thinking off', 'Disable extended thinking'],
|
|
429
|
-
['--thinking auto', 'Let model decide dynamically'],
|
|
430
|
-
['--thinking low', '1K tokens - Quick responses'],
|
|
431
|
-
['--thinking medium', '8K tokens - Standard analysis'],
|
|
432
|
-
['--thinking high', '24K tokens - Deep reasoning'],
|
|
433
|
-
['--thinking xhigh', '32K tokens - Maximum depth'],
|
|
434
|
-
['--thinking <number>', 'Custom token budget (512-100000)'],
|
|
435
|
-
['', ''],
|
|
436
|
-
['--effort <level>', 'Codex alias for reasoning effort (minimal/low/medium/high/xhigh)'],
|
|
437
|
-
['--effort xhigh', 'Pin Codex effort to xhigh for this run'],
|
|
438
|
-
['', ''],
|
|
439
|
-
['Droid exec:', 'Use native Droid flag: --reasoning-effort <level>'],
|
|
440
|
-
['', 'CCS auto-maps --thinking/--effort to --reasoning-effort in droid exec mode.'],
|
|
441
|
-
['', 'For interactive droid sessions, CCS applies reasoning via Droid BYOK model config.'],
|
|
442
|
-
['', 'When multiple reasoning flags are provided, the first flag wins.'],
|
|
443
|
-
['', ''],
|
|
444
|
-
['Note:', 'Extended thinking allocates compute for step-by-step reasoning'],
|
|
445
|
-
['', 'before responding.'],
|
|
446
|
-
['', 'Providers: agy/gemini use --thinking, codex uses --effort (or --thinking alias).'],
|
|
447
|
-
['', 'Codex model suffixes also pin effort: -medium / -high / -xhigh.'],
|
|
448
|
-
], writeLine);
|
|
449
|
-
// Extended Context (1M)
|
|
450
|
-
printSubSection('Extended Context (--1m)', [
|
|
451
|
-
['--1m', 'Request 1M token context when the selected model supports [1m]'],
|
|
452
|
-
['--no-1m', 'Force standard context (Claude default stays plain)'],
|
|
453
|
-
['', ''],
|
|
454
|
-
['Auto behavior:', 'Gemini models: CCS auto-adds [1m] when supported'],
|
|
455
|
-
['', 'Claude models: plain by default, opt-in with --1m or saved [1m]'],
|
|
456
|
-
['', ''],
|
|
457
|
-
['Note:', 'CCS only controls the saved [1m] suffix.'],
|
|
458
|
-
['', 'Provider pricing and entitlement stay upstream.'],
|
|
459
|
-
[
|
|
460
|
-
'',
|
|
461
|
-
'Some accounts/providers can still return 429 extra-usage errors for long-context requests.',
|
|
462
|
-
],
|
|
463
|
-
], writeLine);
|
|
464
|
-
// Image Analysis
|
|
465
|
-
printSubSection('Image Analysis (CLIProxy vision)', [
|
|
466
|
-
['ccs config image-analysis', 'Show current settings'],
|
|
467
|
-
['ccs config image-analysis --enable', 'Enable for CLIProxy providers'],
|
|
468
|
-
['ccs config image-analysis --disable', 'Disable (use native Read)'],
|
|
469
|
-
['ccs config image-analysis --timeout 120', 'Set analysis timeout'],
|
|
470
|
-
['ccs config image-analysis --set-model <p> <m>', 'Set provider model'],
|
|
471
|
-
['', ''],
|
|
472
|
-
['Note:', 'When enabled, images/PDFs are analyzed via vision models'],
|
|
473
|
-
['', 'instead of passing raw data to Claude. Works with CLIProxy'],
|
|
474
|
-
['', 'providers (agy, gemini, codex, kiro, ghcp).'],
|
|
475
|
-
], writeLine);
|
|
476
|
-
printSubSection('Official Channels (official Claude plugins)', [
|
|
477
|
-
['ccs config', 'Dashboard -> Settings -> Channels (fastest path)'],
|
|
478
|
-
['ccs config channels', 'Show current status'],
|
|
479
|
-
[
|
|
480
|
-
'ccs config channels --set telegram,discord',
|
|
481
|
-
'Auto-add selected channels on native Claude default/account sessions',
|
|
482
|
-
],
|
|
483
|
-
['ccs config channels --set all', 'Enable Telegram, Discord, and iMessage'],
|
|
484
|
-
['ccs config channels --unattended', 'Also add --dangerously-skip-permissions'],
|
|
485
|
-
['ccs config channels --set-token telegram=<token>', 'Save TELEGRAM_BOT_TOKEN'],
|
|
486
|
-
['ccs config channels --set-token discord=<token>', 'Save DISCORD_BOT_TOKEN'],
|
|
487
|
-
['ccs config channels --clear-token [channel]', 'Remove one or all saved channel tokens'],
|
|
488
|
-
['', ''],
|
|
489
|
-
['', 'Fastest path: turn on the channel, save the token if needed, then run ccs.'],
|
|
490
|
-
['Note:', (0, official_channels_runtime_1.getOfficialChannelsSupportMessage)()],
|
|
491
|
-
['', 'Telegram/Discord tokens live in ~/.claude/channels/<channel>/.env.'],
|
|
492
|
-
['', 'Current-process TELEGRAM_BOT_TOKEN / DISCORD_BOT_TOKEN also work for that launch.'],
|
|
493
|
-
['', 'iMessage is macOS-only and requires local OS permissions instead of a bot token.'],
|
|
494
|
-
], writeLine);
|
|
495
|
-
// CCS Environment Variables
|
|
496
|
-
printSubSection('Environment Variables', [
|
|
497
|
-
['CCS_DIR', 'Override CCS config directory (default: ~/.ccs)'],
|
|
498
|
-
['CCS_HOME', 'Override home directory (legacy, appends .ccs)'],
|
|
499
|
-
['CCS_DEBUG', 'Enable debug logging'],
|
|
500
|
-
['CCS_THINKING', 'Override thinking level (flag > env > config)'],
|
|
501
|
-
], writeLine);
|
|
502
|
-
// CLI Proxy env vars
|
|
503
|
-
printSubSection('CLI Proxy Environment Variables', [
|
|
504
|
-
['CCS_PROXY_HOST', 'Remote proxy hostname'],
|
|
505
|
-
['CCS_PROXY_PORT', 'Proxy port'],
|
|
506
|
-
['CCS_PROXY_PROTOCOL', 'Protocol (http/https)'],
|
|
507
|
-
['CCS_PROXY_AUTH_TOKEN', 'Auth token'],
|
|
508
|
-
['CCS_PROXY_TIMEOUT', 'Connection timeout in ms'],
|
|
509
|
-
['CCS_PROXY_FALLBACK_ENABLED', 'Enable local fallback (1/0)'],
|
|
510
|
-
['CCS_ALLOW_SELF_SIGNED', 'Allow self-signed certs (1/0)'],
|
|
511
|
-
], writeLine);
|
|
512
|
-
// CLI Proxy paths
|
|
513
|
-
writeLine((0, ui_1.subheader)('CLI Proxy:'));
|
|
514
|
-
writeLine(` Binary: ${(0, ui_1.color)(`${dirDisplay}/cliproxy/bin/cli-proxy-api-plus`, 'path')}`);
|
|
515
|
-
writeLine(` Config: ${(0, ui_1.color)(`${dirDisplay}/cliproxy/config.yaml`, 'path')}`);
|
|
516
|
-
writeLine(` Auth: ${(0, ui_1.color)(`${dirDisplay}/cliproxy/auth/`, 'path')}`);
|
|
517
|
-
writeLine(` ${(0, ui_1.dim)(`Port: ${port_manager_1.CLIPROXY_DEFAULT_PORT} (default)`)}`);
|
|
518
|
-
writeLine('');
|
|
519
|
-
// Shared Data
|
|
520
|
-
writeLine((0, ui_1.subheader)('Shared Data:'));
|
|
521
|
-
writeLine(` Commands: ${(0, ui_1.color)(`${dirDisplay}/shared/commands/`, 'path')}`);
|
|
522
|
-
writeLine(` Skills: ${(0, ui_1.color)(`${dirDisplay}/shared/skills/`, 'path')}`);
|
|
523
|
-
writeLine(` Agents: ${(0, ui_1.color)(`${dirDisplay}/shared/agents/`, 'path')}`);
|
|
524
|
-
writeLine(` ${(0, ui_1.dim)('Note: Symlinked across all profiles')}`);
|
|
137
|
+
writeLine(` ${(0, ui_1.dim)('GitHub OAuth is dashboard-only: ccs config -> Accounts -> Add Kiro account')}`);
|
|
525
138
|
writeLine('');
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
writeLine(
|
|
530
|
-
writeLine(` $ ${(0, ui_1.color)('ccs glm "implement API"', 'command')} ${(0, ui_1.dim)('# API key model')}`);
|
|
531
|
-
writeLine(` $ ${(0, ui_1.color)('ccs config', 'command')} ${(0, ui_1.dim)('# Open web dashboard')}`);
|
|
139
|
+
}
|
|
140
|
+
async function showTargetsHelp(writeLine) {
|
|
141
|
+
await (0, ui_1.initUI)();
|
|
142
|
+
writeLine((0, ui_1.header)('CCS Targets Help'));
|
|
532
143
|
writeLine('');
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
144
|
+
writeCommandTable('Target Routing', command_catalog_1.ROOT_COMPATIBLE_ALIAS_EXAMPLES, writeLine);
|
|
145
|
+
writeCommandTable('Examples', [
|
|
146
|
+
{ name: 'ccs glm --target droid', summary: 'Run a profile on Droid instead of Claude' },
|
|
147
|
+
{
|
|
148
|
+
name: 'ccs --target codex',
|
|
149
|
+
summary: 'Open a native Codex session with your current setup',
|
|
150
|
+
},
|
|
151
|
+
{ name: 'ccs codex-api --target codex', summary: 'Run a routed API bridge on native Codex' },
|
|
152
|
+
], writeLine);
|
|
153
|
+
}
|
|
154
|
+
async function handleHelpCommand(writeLine = console.log) {
|
|
155
|
+
await (0, ui_1.initUI)();
|
|
156
|
+
writeLine((0, ui_1.header)(`CCS CLI v${package_json_1.default.version}`));
|
|
538
157
|
writeLine('');
|
|
539
|
-
|
|
540
|
-
writeLine(` ${(0, ui_1.dim)('Docs: https://github.com/kaitranntt/ccs')}`);
|
|
158
|
+
writeLine(' Claude profile switching, provider routing, and compatible runtime bridges.');
|
|
541
159
|
writeLine('');
|
|
542
|
-
|
|
543
|
-
writeLine((0, ui_1.
|
|
544
|
-
writeLine(` ${(0, ui_1.color)('
|
|
160
|
+
writeLine((0, ui_1.subheader)('Usage'));
|
|
161
|
+
writeLine(` ${(0, ui_1.color)('ccs <profile> [claude-args...]', 'command')}`);
|
|
162
|
+
writeLine(` ${(0, ui_1.color)('ccs <command> [options]', 'command')}`);
|
|
163
|
+
writeLine(` ${(0, ui_1.color)('ccs help <topic>', 'command')}`);
|
|
545
164
|
writeLine('');
|
|
546
|
-
|
|
547
|
-
|
|
165
|
+
writeGroupedCommands('start', writeLine);
|
|
166
|
+
writeGroupedCommands('manage', writeLine);
|
|
167
|
+
writeGroupedCommands('runtime', writeLine);
|
|
168
|
+
writeGroupedCommands('operations', writeLine);
|
|
169
|
+
writeCommandTable('OAuth Provider Shortcuts', command_catalog_1.BUILTIN_PROVIDER_SHORTCUTS.map((entry) => ({
|
|
170
|
+
name: `ccs ${entry.name}`,
|
|
171
|
+
summary: entry.summary,
|
|
172
|
+
})), writeLine);
|
|
173
|
+
writeCommandTable('Examples', command_catalog_1.ROOT_PROFILE_EXAMPLES, writeLine);
|
|
174
|
+
writeCommandTable('Targets and Aliases', command_catalog_1.ROOT_COMPATIBLE_ALIAS_EXAMPLES, writeLine);
|
|
175
|
+
writeCommandTable('More Help', [
|
|
176
|
+
{ name: 'ccs help profiles', summary: getTopicSummary('profiles') },
|
|
177
|
+
{ name: 'ccs help providers', summary: getTopicSummary('providers') },
|
|
178
|
+
{ name: 'ccs help completion', summary: getTopicSummary('completion') },
|
|
179
|
+
{ name: 'ccs help targets', summary: getTopicSummary('targets') },
|
|
180
|
+
{ name: 'ccs api --help', summary: 'Deep help for API profile lifecycle commands' },
|
|
181
|
+
{ name: 'ccs cliproxy --help', summary: 'Deep help for variants, quota, and lifecycle' },
|
|
182
|
+
{ name: 'ccs docker --help', summary: 'Deep help for Docker deployment commands' },
|
|
183
|
+
{ name: 'ccs cursor --help', summary: 'Deep help for Cursor runtime/admin commands' },
|
|
184
|
+
{ name: 'ccs copilot --help', summary: 'Deep help for GitHub Copilot commands' },
|
|
185
|
+
], writeLine);
|
|
186
|
+
writeLine(` ${(0, ui_1.dim)('Flags: -h/--help, -v/--version, -sc/--shell-completion, --target <cli>')}`);
|
|
548
187
|
writeLine('');
|
|
549
188
|
}
|
|
550
189
|
exports.handleHelpCommand = handleHelpCommand;
|
|
190
|
+
function listHelpTargets() {
|
|
191
|
+
return command_catalog_1.ROOT_HELP_TOPICS.map((topic) => topic.name).join(', ');
|
|
192
|
+
}
|
|
193
|
+
async function handleHelpRoute(args, writeLine = console.log) {
|
|
194
|
+
const topic = args[0];
|
|
195
|
+
if (!topic) {
|
|
196
|
+
await handleHelpCommand(writeLine);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (topic === 'profiles') {
|
|
200
|
+
await showProfilesHelp(writeLine);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (topic === 'providers') {
|
|
204
|
+
await showProvidersHelp(writeLine);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (topic === 'kiro') {
|
|
208
|
+
await showKiroHelp(writeLine);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (topic === 'targets') {
|
|
212
|
+
await showTargetsHelp(writeLine);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (topic === 'completion') {
|
|
216
|
+
const { showShellCompletionHelp } = await Promise.resolve().then(() => __importStar(require('./shell-completion-command')));
|
|
217
|
+
showShellCompletionHelp(writeLine);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const commandHandlers = {
|
|
221
|
+
api: async () => (await Promise.resolve().then(() => __importStar(require('./api-command/help')))).showApiCommandHelp(writeLine),
|
|
222
|
+
auth: async () => {
|
|
223
|
+
const authModule = await Promise.resolve().then(() => __importStar(require('../auth/auth-commands')));
|
|
224
|
+
const AuthCommands = authModule.default;
|
|
225
|
+
await new AuthCommands().showHelp();
|
|
226
|
+
},
|
|
227
|
+
cleanup: async () => (await Promise.resolve().then(() => __importStar(require('./cleanup-command')))).handleCleanupCommand(['--help']),
|
|
228
|
+
cliproxy: async () => (await Promise.resolve().then(() => __importStar(require('./cliproxy/help-subcommand')))).showHelp(),
|
|
229
|
+
copilot: async () => process.exit(await (await Promise.resolve().then(() => __importStar(require('./copilot-command')))).handleCopilotCommand(['--help'])),
|
|
230
|
+
cursor: async () => process.exit(await (await Promise.resolve().then(() => __importStar(require('./cursor-command')))).handleCursorCommand(['--help'])),
|
|
231
|
+
docker: async () => (await Promise.resolve().then(() => __importStar(require('./docker/help-subcommand')))).showHelp(),
|
|
232
|
+
migrate: async () => (await Promise.resolve().then(() => __importStar(require('./migrate-command')))).printMigrateHelp(),
|
|
233
|
+
setup: async () => (await Promise.resolve().then(() => __importStar(require('./setup-command')))).handleSetupCommand(['--help']),
|
|
234
|
+
tokens: async () => process.exit(await (await Promise.resolve().then(() => __importStar(require('./tokens-command')))).handleTokensCommand(['--help'])),
|
|
235
|
+
};
|
|
236
|
+
const handler = commandHandlers[topic];
|
|
237
|
+
if (handler) {
|
|
238
|
+
await handler();
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
await (0, ui_1.initUI)();
|
|
242
|
+
writeLine((0, ui_1.color)(`Unknown help topic or command: ${topic}`, 'error'));
|
|
243
|
+
writeLine('');
|
|
244
|
+
writeLine(` ${(0, ui_1.dim)(`Available help topics: ${listHelpTargets()}`)}`);
|
|
245
|
+
writeLine('');
|
|
246
|
+
process.exitCode = 1;
|
|
247
|
+
}
|
|
248
|
+
exports.handleHelpRoute = handleHelpRoute;
|
|
249
|
+
function getRootHelpVisibleCommands() {
|
|
250
|
+
return (0, command_catalog_1.getPublicRootCommands)().map((entry) => entry.name);
|
|
251
|
+
}
|
|
252
|
+
exports.getRootHelpVisibleCommands = getRootHelpVisibleCommands;
|
|
253
|
+
function getRootHelpCatalogEntries() {
|
|
254
|
+
return command_catalog_1.ROOT_COMMAND_CATALOG;
|
|
255
|
+
}
|
|
256
|
+
exports.getRootHelpCatalogEntries = getRootHelpCatalogEntries;
|
|
551
257
|
//# sourceMappingURL=help-command.js.map
|