@kaitranntt/ccs 4.4.0 → 5.0.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 +98 -7
- package/VERSION +1 -1
- package/config/base-agy.settings.json +10 -0
- package/config/base-codex.settings.json +10 -0
- package/config/base-gemini.settings.json +10 -0
- package/dist/auth/auth-commands.d.ts +52 -0
- package/dist/auth/auth-commands.d.ts.map +1 -0
- package/dist/auth/auth-commands.js +479 -0
- package/dist/auth/auth-commands.js.map +1 -0
- package/dist/auth/profile-detector.d.ts +68 -0
- package/dist/auth/profile-detector.d.ts.map +1 -0
- package/dist/auth/profile-detector.js +209 -0
- package/dist/auth/profile-detector.js.map +1 -0
- package/dist/auth/profile-registry.d.ts +60 -0
- package/dist/auth/profile-registry.d.ts.map +1 -0
- package/dist/auth/profile-registry.js +188 -0
- package/dist/auth/profile-registry.js.map +1 -0
- package/dist/ccs.d.ts +10 -0
- package/dist/ccs.d.ts.map +1 -0
- package/dist/ccs.js +320 -0
- package/dist/ccs.js.map +1 -0
- package/dist/cliproxy/auth-handler.d.ts +95 -0
- package/dist/cliproxy/auth-handler.d.ts.map +1 -0
- package/dist/cliproxy/auth-handler.js +443 -0
- package/dist/cliproxy/auth-handler.js.map +1 -0
- package/dist/cliproxy/base-config-loader.d.ts +42 -0
- package/dist/cliproxy/base-config-loader.d.ts.map +1 -0
- package/dist/cliproxy/base-config-loader.js +123 -0
- package/dist/cliproxy/base-config-loader.js.map +1 -0
- package/dist/cliproxy/binary-manager.d.ts +104 -0
- package/dist/cliproxy/binary-manager.d.ts.map +1 -0
- package/dist/cliproxy/binary-manager.js +567 -0
- package/dist/cliproxy/binary-manager.js.map +1 -0
- package/dist/cliproxy/cliproxy-executor.d.ts +33 -0
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -0
- package/dist/cliproxy/cliproxy-executor.js +297 -0
- package/dist/cliproxy/cliproxy-executor.js.map +1 -0
- package/dist/cliproxy/config-generator.d.ts +89 -0
- package/dist/cliproxy/config-generator.d.ts.map +1 -0
- package/dist/cliproxy/config-generator.js +263 -0
- package/dist/cliproxy/config-generator.js.map +1 -0
- package/dist/cliproxy/index.d.ts +13 -0
- package/dist/cliproxy/index.d.ts.map +1 -0
- package/dist/cliproxy/index.js +62 -0
- package/dist/cliproxy/index.js.map +1 -0
- package/dist/cliproxy/platform-detector.d.ts +48 -0
- package/dist/cliproxy/platform-detector.d.ts.map +1 -0
- package/dist/cliproxy/platform-detector.js +118 -0
- package/dist/cliproxy/platform-detector.js.map +1 -0
- package/dist/cliproxy/types.d.ts +169 -0
- package/dist/cliproxy/types.d.ts.map +1 -0
- package/dist/cliproxy/types.js +7 -0
- package/dist/cliproxy/types.js.map +1 -0
- package/dist/commands/doctor-command.d.ts +10 -0
- package/dist/commands/doctor-command.d.ts.map +1 -0
- package/dist/commands/doctor-command.js +44 -0
- package/dist/commands/doctor-command.js.map +1 -0
- package/dist/commands/help-command.d.ts +5 -0
- package/dist/commands/help-command.d.ts.map +1 -0
- package/dist/commands/help-command.js +104 -0
- package/dist/commands/help-command.js.map +1 -0
- package/dist/commands/install-command.d.ts +14 -0
- package/dist/commands/install-command.d.ts.map +1 -0
- package/dist/commands/install-command.js +39 -0
- package/dist/commands/install-command.js.map +1 -0
- package/dist/commands/shell-completion-command.d.ts +10 -0
- package/dist/commands/shell-completion-command.d.ts.map +1 -0
- package/dist/commands/shell-completion-command.js +85 -0
- package/dist/commands/shell-completion-command.js.map +1 -0
- package/dist/commands/sync-command.d.ts +10 -0
- package/dist/commands/sync-command.d.ts.map +1 -0
- package/dist/commands/sync-command.js +59 -0
- package/dist/commands/sync-command.js.map +1 -0
- package/dist/commands/update-command.d.ts +12 -0
- package/dist/commands/update-command.d.ts.map +1 -0
- package/dist/commands/update-command.js +295 -0
- package/dist/commands/update-command.js.map +1 -0
- package/dist/commands/version-command.d.ts +10 -0
- package/dist/commands/version-command.d.ts.map +1 -0
- package/dist/commands/version-command.js +100 -0
- package/dist/commands/version-command.js.map +1 -0
- package/dist/delegation/delegation-handler.d.ts +60 -0
- package/dist/delegation/delegation-handler.d.ts.map +1 -0
- package/dist/delegation/delegation-handler.js +174 -0
- package/dist/delegation/delegation-handler.js.map +1 -0
- package/dist/delegation/headless-executor.d.ts +114 -0
- package/dist/delegation/headless-executor.d.ts.map +1 -0
- package/dist/delegation/headless-executor.js +562 -0
- package/dist/delegation/headless-executor.js.map +1 -0
- package/dist/delegation/result-formatter.d.ts +108 -0
- package/dist/delegation/result-formatter.d.ts.map +1 -0
- package/dist/delegation/result-formatter.js +391 -0
- package/dist/delegation/result-formatter.js.map +1 -0
- package/dist/delegation/session-manager.d.ts +58 -0
- package/dist/delegation/session-manager.d.ts.map +1 -0
- package/dist/delegation/session-manager.js +153 -0
- package/dist/delegation/session-manager.js.map +1 -0
- package/dist/delegation/settings-parser.d.ts +31 -0
- package/dist/delegation/settings-parser.d.ts.map +1 -0
- package/dist/delegation/settings-parser.js +107 -0
- package/dist/delegation/settings-parser.js.map +1 -0
- package/dist/glmt/delta-accumulator.d.ts +210 -0
- package/dist/glmt/delta-accumulator.d.ts.map +1 -0
- package/dist/glmt/delta-accumulator.js +351 -0
- package/dist/glmt/delta-accumulator.js.map +1 -0
- package/dist/glmt/glmt-proxy.d.ts +72 -0
- package/dist/glmt/glmt-proxy.d.ts.map +1 -0
- package/dist/glmt/glmt-proxy.js +427 -0
- package/dist/glmt/glmt-proxy.js.map +1 -0
- package/dist/glmt/glmt-transformer.d.ts +265 -0
- package/dist/glmt/glmt-transformer.d.ts.map +1 -0
- package/dist/glmt/glmt-transformer.js +832 -0
- package/dist/glmt/glmt-transformer.js.map +1 -0
- package/dist/glmt/locale-enforcer.d.ts +38 -0
- package/dist/glmt/locale-enforcer.d.ts.map +1 -0
- package/dist/glmt/locale-enforcer.js +69 -0
- package/dist/glmt/locale-enforcer.js.map +1 -0
- package/dist/glmt/reasoning-enforcer.d.ts +52 -0
- package/dist/glmt/reasoning-enforcer.d.ts.map +1 -0
- package/dist/glmt/reasoning-enforcer.js +151 -0
- package/dist/glmt/reasoning-enforcer.js.map +1 -0
- package/dist/glmt/sse-parser.d.ts +47 -0
- package/dist/glmt/sse-parser.d.ts.map +1 -0
- package/dist/glmt/sse-parser.js +93 -0
- package/dist/glmt/sse-parser.js.map +1 -0
- package/dist/management/doctor.d.ts +104 -0
- package/dist/management/doctor.d.ts.map +1 -0
- package/dist/management/doctor.js +673 -0
- package/dist/management/doctor.js.map +1 -0
- package/dist/management/instance-manager.d.ts +57 -0
- package/dist/management/instance-manager.d.ts.map +1 -0
- package/dist/management/instance-manager.js +195 -0
- package/dist/management/instance-manager.js.map +1 -0
- package/dist/management/recovery-manager.d.ts +39 -0
- package/dist/management/recovery-manager.d.ts.map +1 -0
- package/dist/management/recovery-manager.js +141 -0
- package/dist/management/recovery-manager.js.map +1 -0
- package/dist/management/shared-manager.d.ts +47 -0
- package/dist/management/shared-manager.d.ts.map +1 -0
- package/dist/management/shared-manager.js +388 -0
- package/dist/management/shared-manager.js.map +1 -0
- package/dist/types/cli.d.ts +50 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +16 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/config.d.ts +51 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +26 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/delegation.d.ts +61 -0
- package/dist/types/delegation.d.ts.map +1 -0
- package/dist/types/delegation.js +6 -0
- package/dist/types/delegation.js.map +1 -0
- package/dist/types/glmt.d.ts +95 -0
- package/dist/types/glmt.d.ts.map +1 -0
- package/dist/types/glmt.js +7 -0
- package/dist/types/glmt.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/utils.d.ts +36 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/types/utils.js +22 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/utils/claude-detector.d.ts +14 -0
- package/dist/utils/claude-detector.d.ts.map +1 -0
- package/dist/utils/claude-detector.js +112 -0
- package/dist/utils/claude-detector.js.map +1 -0
- package/dist/utils/claude-dir-installer.d.ts +46 -0
- package/dist/utils/claude-dir-installer.d.ts.map +1 -0
- package/dist/utils/claude-dir-installer.js +289 -0
- package/dist/utils/claude-dir-installer.js.map +1 -0
- package/dist/utils/claude-symlink-manager.d.ts +61 -0
- package/dist/utils/claude-symlink-manager.d.ts.map +1 -0
- package/dist/utils/claude-symlink-manager.js +291 -0
- package/dist/utils/claude-symlink-manager.js.map +1 -0
- package/dist/utils/config-manager.d.ts +32 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +143 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/delegation-validator.d.ts +39 -0
- package/dist/utils/delegation-validator.d.ts.map +1 -0
- package/dist/utils/delegation-validator.js +161 -0
- package/dist/utils/delegation-validator.js.map +1 -0
- package/dist/utils/error-codes.d.ts +36 -0
- package/dist/utils/error-codes.d.ts.map +1 -0
- package/dist/utils/error-codes.js +63 -0
- package/dist/utils/error-codes.js.map +1 -0
- package/dist/utils/error-manager.d.ts +59 -0
- package/dist/utils/error-manager.d.ts.map +1 -0
- package/dist/utils/error-manager.js +228 -0
- package/dist/utils/error-manager.js.map +1 -0
- package/dist/utils/helpers.d.ts +27 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +150 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/package-manager-detector.d.ts +14 -0
- package/dist/utils/package-manager-detector.d.ts.map +1 -0
- package/dist/utils/package-manager-detector.js +162 -0
- package/dist/utils/package-manager-detector.js.map +1 -0
- package/dist/utils/progress-indicator.d.ts +52 -0
- package/dist/utils/progress-indicator.d.ts.map +1 -0
- package/dist/utils/progress-indicator.js +102 -0
- package/dist/utils/progress-indicator.js.map +1 -0
- package/dist/utils/prompt.d.ts +29 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +116 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/shell-completion.d.ts +52 -0
- package/dist/utils/shell-completion.d.ts.map +1 -0
- package/dist/utils/shell-completion.js +231 -0
- package/dist/utils/shell-completion.js.map +1 -0
- package/dist/utils/shell-executor.d.ts +15 -0
- package/dist/utils/shell-executor.d.ts.map +1 -0
- package/dist/utils/shell-executor.js +57 -0
- package/dist/utils/shell-executor.js.map +1 -0
- package/dist/utils/update-checker.d.ts +48 -0
- package/dist/utils/update-checker.d.ts.map +1 -0
- package/dist/utils/update-checker.js +241 -0
- package/dist/utils/update-checker.js.map +1 -0
- package/lib/ccs +21 -1907
- package/lib/ccs.ps1 +26 -1800
- package/lib/error-codes.ps1 +2 -1
- package/lib/prompt.ps1 +2 -2
- package/package.json +31 -11
- package/scripts/add-shebang.js +39 -0
- package/scripts/bump-version.sh +25 -37
- package/scripts/dev-install.sh +32 -11
- package/scripts/postinstall.js +29 -29
- package/bin/auth/auth-commands.js +0 -499
- package/bin/auth/profile-detector.js +0 -204
- package/bin/auth/profile-registry.js +0 -225
- package/bin/ccs.js +0 -1034
- package/bin/delegation/README.md +0 -191
- package/bin/delegation/delegation-handler.js +0 -212
- package/bin/delegation/headless-executor.js +0 -618
- package/bin/delegation/result-formatter.js +0 -485
- package/bin/delegation/session-manager.js +0 -157
- package/bin/delegation/settings-parser.js +0 -109
- package/bin/glmt/delta-accumulator.js +0 -276
- package/bin/glmt/glmt-proxy.js +0 -495
- package/bin/glmt/glmt-transformer.js +0 -999
- package/bin/glmt/locale-enforcer.js +0 -72
- package/bin/glmt/reasoning-enforcer.js +0 -173
- package/bin/glmt/sse-parser.js +0 -96
- package/bin/management/doctor.js +0 -721
- package/bin/management/instance-manager.js +0 -202
- package/bin/management/recovery-manager.js +0 -135
- package/bin/management/shared-manager.js +0 -402
- package/bin/utils/claude-detector.js +0 -73
- package/bin/utils/claude-dir-installer.js +0 -283
- package/bin/utils/claude-symlink-manager.js +0 -289
- package/bin/utils/config-manager.js +0 -103
- package/bin/utils/delegation-validator.js +0 -154
- package/bin/utils/error-codes.js +0 -59
- package/bin/utils/error-manager.js +0 -165
- package/bin/utils/helpers.js +0 -136
- package/bin/utils/progress-indicator.js +0 -111
- package/bin/utils/prompt.js +0 -134
- package/bin/utils/shell-completion.js +0 -256
- package/bin/utils/update-checker.js +0 -243
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DelegationHandler = void 0;
|
|
5
|
+
const headless_executor_1 = require("./headless-executor");
|
|
6
|
+
const session_manager_1 = require("./session-manager");
|
|
7
|
+
const result_formatter_1 = require("./result-formatter");
|
|
8
|
+
const delegation_validator_1 = require("../utils/delegation-validator");
|
|
9
|
+
const settings_parser_1 = require("./settings-parser");
|
|
10
|
+
/**
|
|
11
|
+
* Delegation command handler
|
|
12
|
+
* Routes -p flag commands to HeadlessExecutor with enhanced features
|
|
13
|
+
*/
|
|
14
|
+
class DelegationHandler {
|
|
15
|
+
/**
|
|
16
|
+
* Route delegation command
|
|
17
|
+
* @param args - Full args array from ccs.js
|
|
18
|
+
*/
|
|
19
|
+
async route(args) {
|
|
20
|
+
try {
|
|
21
|
+
// 1. Parse args into { profile, prompt, options }
|
|
22
|
+
const parsed = this._parseArgs(args);
|
|
23
|
+
// 2. Detect special profiles (glm:continue, kimi:continue)
|
|
24
|
+
if (parsed.profile.includes(':continue')) {
|
|
25
|
+
return await this._handleContinue(parsed);
|
|
26
|
+
}
|
|
27
|
+
// 3. Validate profile
|
|
28
|
+
this._validateProfile(parsed.profile);
|
|
29
|
+
// 4. Execute via HeadlessExecutor
|
|
30
|
+
const result = await headless_executor_1.HeadlessExecutor.execute(parsed.profile, parsed.prompt, parsed.options);
|
|
31
|
+
// 5. Format and display results
|
|
32
|
+
const formatted = result_formatter_1.ResultFormatter.format(result);
|
|
33
|
+
console.log(formatted);
|
|
34
|
+
// 6. Exit with proper code
|
|
35
|
+
process.exit(result.exitCode || 0);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error(`[X] Delegation error: ${error.message}`);
|
|
39
|
+
if (process.env.CCS_DEBUG) {
|
|
40
|
+
console.error(error.stack);
|
|
41
|
+
}
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Handle continue command (resume last session)
|
|
47
|
+
* @param parsed - Parsed args
|
|
48
|
+
*/
|
|
49
|
+
async _handleContinue(parsed) {
|
|
50
|
+
const baseProfile = parsed.profile.replace(':continue', '');
|
|
51
|
+
// Get last session from SessionManager
|
|
52
|
+
const sessionMgr = new session_manager_1.SessionManager();
|
|
53
|
+
const lastSession = sessionMgr.getLastSession(baseProfile);
|
|
54
|
+
if (!lastSession) {
|
|
55
|
+
console.error(`[X] No previous session found for ${baseProfile}`);
|
|
56
|
+
console.error(` Start a new session first with: ccs ${baseProfile} -p "task"`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
// Execute with resume flag
|
|
60
|
+
const result = await headless_executor_1.HeadlessExecutor.execute(baseProfile, parsed.prompt, {
|
|
61
|
+
...parsed.options,
|
|
62
|
+
resumeSession: true,
|
|
63
|
+
sessionId: lastSession.sessionId,
|
|
64
|
+
});
|
|
65
|
+
const formatted = result_formatter_1.ResultFormatter.format(result);
|
|
66
|
+
console.log(formatted);
|
|
67
|
+
process.exit(result.exitCode || 0);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Parse args into structured format
|
|
71
|
+
* @param args - Raw args
|
|
72
|
+
* @returns { profile, prompt, options }
|
|
73
|
+
*/
|
|
74
|
+
_parseArgs(args) {
|
|
75
|
+
// Extract profile (first non-flag arg or 'default')
|
|
76
|
+
const profile = this._extractProfile(args);
|
|
77
|
+
// Extract prompt from -p or --prompt
|
|
78
|
+
const prompt = this._extractPrompt(args);
|
|
79
|
+
// Extract options (--timeout, --permission-mode, etc.)
|
|
80
|
+
const options = this._extractOptions(args);
|
|
81
|
+
return { profile, prompt, options };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Extract profile from args (first non-flag arg)
|
|
85
|
+
* @param args - Args array
|
|
86
|
+
* @returns profile name
|
|
87
|
+
*/
|
|
88
|
+
_extractProfile(args) {
|
|
89
|
+
// Find first arg that doesn't start with '-' and isn't -p value
|
|
90
|
+
let skipNext = false;
|
|
91
|
+
for (let i = 0; i < args.length; i++) {
|
|
92
|
+
if (skipNext) {
|
|
93
|
+
skipNext = false;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (args[i] === '-p' || args[i] === '--prompt') {
|
|
97
|
+
skipNext = true;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (!args[i].startsWith('-')) {
|
|
101
|
+
return args[i];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// No profile specified, return empty string (will error in validation)
|
|
105
|
+
return '';
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Extract prompt from -p flag
|
|
109
|
+
* @param args - Args array
|
|
110
|
+
* @returns prompt text
|
|
111
|
+
*/
|
|
112
|
+
_extractPrompt(args) {
|
|
113
|
+
const pIndex = args.indexOf('-p');
|
|
114
|
+
const promptIndex = args.indexOf('--prompt');
|
|
115
|
+
const index = pIndex !== -1 ? pIndex : promptIndex;
|
|
116
|
+
if (index === -1 || index === args.length - 1) {
|
|
117
|
+
console.error('[X] Missing prompt after -p flag');
|
|
118
|
+
console.error(' Usage: ccs glm -p "task description"');
|
|
119
|
+
process.exit(1);
|
|
120
|
+
}
|
|
121
|
+
return args[index + 1];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Extract options from remaining args
|
|
125
|
+
* @param args - Args array
|
|
126
|
+
* @returns options for HeadlessExecutor
|
|
127
|
+
*/
|
|
128
|
+
_extractOptions(args) {
|
|
129
|
+
const cwd = process.cwd();
|
|
130
|
+
// Read default permission mode from .claude/settings.local.json
|
|
131
|
+
// Falls back to 'acceptEdits' if file doesn't exist
|
|
132
|
+
const defaultPermissionMode = settings_parser_1.SettingsParser.parseDefaultPermissionMode(cwd);
|
|
133
|
+
const options = {
|
|
134
|
+
cwd,
|
|
135
|
+
outputFormat: 'stream-json',
|
|
136
|
+
permissionMode: defaultPermissionMode,
|
|
137
|
+
};
|
|
138
|
+
// Parse permission-mode (CLI flag overrides settings file)
|
|
139
|
+
const permModeIndex = args.indexOf('--permission-mode');
|
|
140
|
+
if (permModeIndex !== -1 && permModeIndex < args.length - 1) {
|
|
141
|
+
options.permissionMode = args[permModeIndex + 1];
|
|
142
|
+
}
|
|
143
|
+
// Parse timeout
|
|
144
|
+
const timeoutIndex = args.indexOf('--timeout');
|
|
145
|
+
if (timeoutIndex !== -1 && timeoutIndex < args.length - 1) {
|
|
146
|
+
options.timeout = parseInt(args[timeoutIndex + 1], 10);
|
|
147
|
+
}
|
|
148
|
+
return options;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Validate profile exists and is configured
|
|
152
|
+
* @param profile - Profile name
|
|
153
|
+
*/
|
|
154
|
+
_validateProfile(profile) {
|
|
155
|
+
if (!profile) {
|
|
156
|
+
console.error('[X] No profile specified');
|
|
157
|
+
console.error(' Usage: ccs <profile> -p "task"');
|
|
158
|
+
console.error(' Examples: ccs glm -p "task", ccs kimi -p "task"');
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
// Use DelegationValidator to check profile
|
|
162
|
+
const validation = delegation_validator_1.DelegationValidator.validate(profile);
|
|
163
|
+
if (!validation.valid) {
|
|
164
|
+
console.error(`[X] Profile '${profile}' is not configured for delegation`);
|
|
165
|
+
console.error(` ${validation.error}`);
|
|
166
|
+
console.error('');
|
|
167
|
+
console.error(' Run: ccs doctor');
|
|
168
|
+
console.error(` Or configure: ~/.ccs/${profile}.settings.json`);
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.DelegationHandler = DelegationHandler;
|
|
174
|
+
//# sourceMappingURL=delegation-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegation-handler.js","sourceRoot":"","sources":["../../src/delegation/delegation-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
interface ClaudeMessage {
|
|
3
|
+
type: string;
|
|
4
|
+
content?: string;
|
|
5
|
+
thinking?: string;
|
|
6
|
+
tool_use?: {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
input: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
tool_result?: {
|
|
12
|
+
tool_use_id: string;
|
|
13
|
+
content: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface PermissionDenial {
|
|
17
|
+
tool_name: string;
|
|
18
|
+
reason: string;
|
|
19
|
+
}
|
|
20
|
+
interface ExecutionError {
|
|
21
|
+
message?: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
type?: string;
|
|
24
|
+
tool_name?: string;
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
interface ExecutionOptions {
|
|
28
|
+
cwd?: string;
|
|
29
|
+
timeout?: number;
|
|
30
|
+
outputFormat?: string;
|
|
31
|
+
permissionMode?: string;
|
|
32
|
+
resumeSession?: boolean;
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
maxRetries?: number;
|
|
35
|
+
}
|
|
36
|
+
interface ExecutionResult {
|
|
37
|
+
exitCode: number;
|
|
38
|
+
stdout: string;
|
|
39
|
+
stderr: string;
|
|
40
|
+
cwd: string;
|
|
41
|
+
profile: string;
|
|
42
|
+
duration: number;
|
|
43
|
+
timedOut: boolean;
|
|
44
|
+
success: boolean;
|
|
45
|
+
messages: ClaudeMessage[];
|
|
46
|
+
sessionId?: string;
|
|
47
|
+
totalCost?: number;
|
|
48
|
+
numTurns?: number;
|
|
49
|
+
isError?: boolean;
|
|
50
|
+
type?: string | null;
|
|
51
|
+
subtype?: string;
|
|
52
|
+
durationApi?: number;
|
|
53
|
+
permissionDenials?: PermissionDenial[];
|
|
54
|
+
errors?: ExecutionError[];
|
|
55
|
+
content?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Headless executor for Claude CLI delegation
|
|
59
|
+
* Spawns claude with -p flag for single-turn execution
|
|
60
|
+
*/
|
|
61
|
+
export declare class HeadlessExecutor {
|
|
62
|
+
/**
|
|
63
|
+
* Execute task via headless Claude CLI
|
|
64
|
+
* @param profile - Profile name (glm, kimi, custom)
|
|
65
|
+
* @param enhancedPrompt - Enhanced prompt with context
|
|
66
|
+
* @param options - Execution options
|
|
67
|
+
* @returns execution result
|
|
68
|
+
*/
|
|
69
|
+
static execute(profile: string, enhancedPrompt: string, options?: ExecutionOptions): Promise<ExecutionResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Validate permission mode
|
|
72
|
+
* @param mode - Permission mode
|
|
73
|
+
* @throws {Error} If mode is invalid
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
private static _validatePermissionMode;
|
|
77
|
+
/**
|
|
78
|
+
* Detect Claude CLI executable
|
|
79
|
+
* @returns Path to claude CLI or null if not found
|
|
80
|
+
* @private
|
|
81
|
+
*/
|
|
82
|
+
private static _detectClaudeCli;
|
|
83
|
+
/**
|
|
84
|
+
* Execute with retry logic
|
|
85
|
+
* @param profile - Profile name
|
|
86
|
+
* @param enhancedPrompt - Enhanced prompt
|
|
87
|
+
* @param options - Execution options
|
|
88
|
+
* @returns execution result
|
|
89
|
+
*/
|
|
90
|
+
static executeWithRetry(profile: string, enhancedPrompt: string, options?: ExecutionOptions): Promise<ExecutionResult>;
|
|
91
|
+
/**
|
|
92
|
+
* Sleep utility for retry backoff
|
|
93
|
+
* @param ms - Milliseconds to sleep
|
|
94
|
+
* @returns Promise<void>
|
|
95
|
+
* @private
|
|
96
|
+
*/
|
|
97
|
+
private static _sleep;
|
|
98
|
+
/**
|
|
99
|
+
* Process prompt to detect and preserve slash commands
|
|
100
|
+
* Implements smart enhancement: preserves slash command at start, allows context in rest
|
|
101
|
+
* @param prompt - Original prompt (may contain slash command)
|
|
102
|
+
* @returns Processed prompt with slash command preserved
|
|
103
|
+
* @private
|
|
104
|
+
*/
|
|
105
|
+
private static _processSlashCommand;
|
|
106
|
+
/**
|
|
107
|
+
* Test if profile is executable (quick health check)
|
|
108
|
+
* @param profile - Profile name
|
|
109
|
+
* @returns True if profile can execute
|
|
110
|
+
*/
|
|
111
|
+
static testProfile(profile: string): Promise<boolean>;
|
|
112
|
+
}
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=headless-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless-executor.d.ts","sourceRoot":"","sources":["../../src/delegation/headless-executor.ts"],"names":[],"mappings":";AAUA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsBD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;OAMG;WACU,OAAO,CAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAyc3B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAOtC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgB/B;;;;;;OAMG;WACU,gBAAgB,CAC3B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC;IAsC3B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,MAAM;IAIrB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAqCnC;;;;OAIG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAU5D"}
|