@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.
Files changed (262) hide show
  1. package/README.md +98 -7
  2. package/VERSION +1 -1
  3. package/config/base-agy.settings.json +10 -0
  4. package/config/base-codex.settings.json +10 -0
  5. package/config/base-gemini.settings.json +10 -0
  6. package/dist/auth/auth-commands.d.ts +52 -0
  7. package/dist/auth/auth-commands.d.ts.map +1 -0
  8. package/dist/auth/auth-commands.js +479 -0
  9. package/dist/auth/auth-commands.js.map +1 -0
  10. package/dist/auth/profile-detector.d.ts +68 -0
  11. package/dist/auth/profile-detector.d.ts.map +1 -0
  12. package/dist/auth/profile-detector.js +209 -0
  13. package/dist/auth/profile-detector.js.map +1 -0
  14. package/dist/auth/profile-registry.d.ts +60 -0
  15. package/dist/auth/profile-registry.d.ts.map +1 -0
  16. package/dist/auth/profile-registry.js +188 -0
  17. package/dist/auth/profile-registry.js.map +1 -0
  18. package/dist/ccs.d.ts +10 -0
  19. package/dist/ccs.d.ts.map +1 -0
  20. package/dist/ccs.js +320 -0
  21. package/dist/ccs.js.map +1 -0
  22. package/dist/cliproxy/auth-handler.d.ts +95 -0
  23. package/dist/cliproxy/auth-handler.d.ts.map +1 -0
  24. package/dist/cliproxy/auth-handler.js +443 -0
  25. package/dist/cliproxy/auth-handler.js.map +1 -0
  26. package/dist/cliproxy/base-config-loader.d.ts +42 -0
  27. package/dist/cliproxy/base-config-loader.d.ts.map +1 -0
  28. package/dist/cliproxy/base-config-loader.js +123 -0
  29. package/dist/cliproxy/base-config-loader.js.map +1 -0
  30. package/dist/cliproxy/binary-manager.d.ts +104 -0
  31. package/dist/cliproxy/binary-manager.d.ts.map +1 -0
  32. package/dist/cliproxy/binary-manager.js +567 -0
  33. package/dist/cliproxy/binary-manager.js.map +1 -0
  34. package/dist/cliproxy/cliproxy-executor.d.ts +33 -0
  35. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -0
  36. package/dist/cliproxy/cliproxy-executor.js +297 -0
  37. package/dist/cliproxy/cliproxy-executor.js.map +1 -0
  38. package/dist/cliproxy/config-generator.d.ts +89 -0
  39. package/dist/cliproxy/config-generator.d.ts.map +1 -0
  40. package/dist/cliproxy/config-generator.js +263 -0
  41. package/dist/cliproxy/config-generator.js.map +1 -0
  42. package/dist/cliproxy/index.d.ts +13 -0
  43. package/dist/cliproxy/index.d.ts.map +1 -0
  44. package/dist/cliproxy/index.js +62 -0
  45. package/dist/cliproxy/index.js.map +1 -0
  46. package/dist/cliproxy/platform-detector.d.ts +48 -0
  47. package/dist/cliproxy/platform-detector.d.ts.map +1 -0
  48. package/dist/cliproxy/platform-detector.js +118 -0
  49. package/dist/cliproxy/platform-detector.js.map +1 -0
  50. package/dist/cliproxy/types.d.ts +169 -0
  51. package/dist/cliproxy/types.d.ts.map +1 -0
  52. package/dist/cliproxy/types.js +7 -0
  53. package/dist/cliproxy/types.js.map +1 -0
  54. package/dist/commands/doctor-command.d.ts +10 -0
  55. package/dist/commands/doctor-command.d.ts.map +1 -0
  56. package/dist/commands/doctor-command.js +44 -0
  57. package/dist/commands/doctor-command.js.map +1 -0
  58. package/dist/commands/help-command.d.ts +5 -0
  59. package/dist/commands/help-command.d.ts.map +1 -0
  60. package/dist/commands/help-command.js +104 -0
  61. package/dist/commands/help-command.js.map +1 -0
  62. package/dist/commands/install-command.d.ts +14 -0
  63. package/dist/commands/install-command.d.ts.map +1 -0
  64. package/dist/commands/install-command.js +39 -0
  65. package/dist/commands/install-command.js.map +1 -0
  66. package/dist/commands/shell-completion-command.d.ts +10 -0
  67. package/dist/commands/shell-completion-command.d.ts.map +1 -0
  68. package/dist/commands/shell-completion-command.js +85 -0
  69. package/dist/commands/shell-completion-command.js.map +1 -0
  70. package/dist/commands/sync-command.d.ts +10 -0
  71. package/dist/commands/sync-command.d.ts.map +1 -0
  72. package/dist/commands/sync-command.js +59 -0
  73. package/dist/commands/sync-command.js.map +1 -0
  74. package/dist/commands/update-command.d.ts +12 -0
  75. package/dist/commands/update-command.d.ts.map +1 -0
  76. package/dist/commands/update-command.js +295 -0
  77. package/dist/commands/update-command.js.map +1 -0
  78. package/dist/commands/version-command.d.ts +10 -0
  79. package/dist/commands/version-command.d.ts.map +1 -0
  80. package/dist/commands/version-command.js +100 -0
  81. package/dist/commands/version-command.js.map +1 -0
  82. package/dist/delegation/delegation-handler.d.ts +60 -0
  83. package/dist/delegation/delegation-handler.d.ts.map +1 -0
  84. package/dist/delegation/delegation-handler.js +174 -0
  85. package/dist/delegation/delegation-handler.js.map +1 -0
  86. package/dist/delegation/headless-executor.d.ts +114 -0
  87. package/dist/delegation/headless-executor.d.ts.map +1 -0
  88. package/dist/delegation/headless-executor.js +562 -0
  89. package/dist/delegation/headless-executor.js.map +1 -0
  90. package/dist/delegation/result-formatter.d.ts +108 -0
  91. package/dist/delegation/result-formatter.d.ts.map +1 -0
  92. package/dist/delegation/result-formatter.js +391 -0
  93. package/dist/delegation/result-formatter.js.map +1 -0
  94. package/dist/delegation/session-manager.d.ts +58 -0
  95. package/dist/delegation/session-manager.d.ts.map +1 -0
  96. package/dist/delegation/session-manager.js +153 -0
  97. package/dist/delegation/session-manager.js.map +1 -0
  98. package/dist/delegation/settings-parser.d.ts +31 -0
  99. package/dist/delegation/settings-parser.d.ts.map +1 -0
  100. package/dist/delegation/settings-parser.js +107 -0
  101. package/dist/delegation/settings-parser.js.map +1 -0
  102. package/dist/glmt/delta-accumulator.d.ts +210 -0
  103. package/dist/glmt/delta-accumulator.d.ts.map +1 -0
  104. package/dist/glmt/delta-accumulator.js +351 -0
  105. package/dist/glmt/delta-accumulator.js.map +1 -0
  106. package/dist/glmt/glmt-proxy.d.ts +72 -0
  107. package/dist/glmt/glmt-proxy.d.ts.map +1 -0
  108. package/dist/glmt/glmt-proxy.js +427 -0
  109. package/dist/glmt/glmt-proxy.js.map +1 -0
  110. package/dist/glmt/glmt-transformer.d.ts +265 -0
  111. package/dist/glmt/glmt-transformer.d.ts.map +1 -0
  112. package/dist/glmt/glmt-transformer.js +832 -0
  113. package/dist/glmt/glmt-transformer.js.map +1 -0
  114. package/dist/glmt/locale-enforcer.d.ts +38 -0
  115. package/dist/glmt/locale-enforcer.d.ts.map +1 -0
  116. package/dist/glmt/locale-enforcer.js +69 -0
  117. package/dist/glmt/locale-enforcer.js.map +1 -0
  118. package/dist/glmt/reasoning-enforcer.d.ts +52 -0
  119. package/dist/glmt/reasoning-enforcer.d.ts.map +1 -0
  120. package/dist/glmt/reasoning-enforcer.js +151 -0
  121. package/dist/glmt/reasoning-enforcer.js.map +1 -0
  122. package/dist/glmt/sse-parser.d.ts +47 -0
  123. package/dist/glmt/sse-parser.d.ts.map +1 -0
  124. package/dist/glmt/sse-parser.js +93 -0
  125. package/dist/glmt/sse-parser.js.map +1 -0
  126. package/dist/management/doctor.d.ts +104 -0
  127. package/dist/management/doctor.d.ts.map +1 -0
  128. package/dist/management/doctor.js +673 -0
  129. package/dist/management/doctor.js.map +1 -0
  130. package/dist/management/instance-manager.d.ts +57 -0
  131. package/dist/management/instance-manager.d.ts.map +1 -0
  132. package/dist/management/instance-manager.js +195 -0
  133. package/dist/management/instance-manager.js.map +1 -0
  134. package/dist/management/recovery-manager.d.ts +39 -0
  135. package/dist/management/recovery-manager.d.ts.map +1 -0
  136. package/dist/management/recovery-manager.js +141 -0
  137. package/dist/management/recovery-manager.js.map +1 -0
  138. package/dist/management/shared-manager.d.ts +47 -0
  139. package/dist/management/shared-manager.d.ts.map +1 -0
  140. package/dist/management/shared-manager.js +388 -0
  141. package/dist/management/shared-manager.js.map +1 -0
  142. package/dist/types/cli.d.ts +50 -0
  143. package/dist/types/cli.d.ts.map +1 -0
  144. package/dist/types/cli.js +16 -0
  145. package/dist/types/cli.js.map +1 -0
  146. package/dist/types/config.d.ts +51 -0
  147. package/dist/types/config.d.ts.map +1 -0
  148. package/dist/types/config.js +26 -0
  149. package/dist/types/config.js.map +1 -0
  150. package/dist/types/delegation.d.ts +61 -0
  151. package/dist/types/delegation.d.ts.map +1 -0
  152. package/dist/types/delegation.js +6 -0
  153. package/dist/types/delegation.js.map +1 -0
  154. package/dist/types/glmt.d.ts +95 -0
  155. package/dist/types/glmt.d.ts.map +1 -0
  156. package/dist/types/glmt.js +7 -0
  157. package/dist/types/glmt.js.map +1 -0
  158. package/dist/types/index.d.ts +13 -0
  159. package/dist/types/index.d.ts.map +1 -0
  160. package/dist/types/index.js +16 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/types/utils.d.ts +36 -0
  163. package/dist/types/utils.d.ts.map +1 -0
  164. package/dist/types/utils.js +22 -0
  165. package/dist/types/utils.js.map +1 -0
  166. package/dist/utils/claude-detector.d.ts +14 -0
  167. package/dist/utils/claude-detector.d.ts.map +1 -0
  168. package/dist/utils/claude-detector.js +112 -0
  169. package/dist/utils/claude-detector.js.map +1 -0
  170. package/dist/utils/claude-dir-installer.d.ts +46 -0
  171. package/dist/utils/claude-dir-installer.d.ts.map +1 -0
  172. package/dist/utils/claude-dir-installer.js +289 -0
  173. package/dist/utils/claude-dir-installer.js.map +1 -0
  174. package/dist/utils/claude-symlink-manager.d.ts +61 -0
  175. package/dist/utils/claude-symlink-manager.d.ts.map +1 -0
  176. package/dist/utils/claude-symlink-manager.js +291 -0
  177. package/dist/utils/claude-symlink-manager.js.map +1 -0
  178. package/dist/utils/config-manager.d.ts +32 -0
  179. package/dist/utils/config-manager.d.ts.map +1 -0
  180. package/dist/utils/config-manager.js +143 -0
  181. package/dist/utils/config-manager.js.map +1 -0
  182. package/dist/utils/delegation-validator.d.ts +39 -0
  183. package/dist/utils/delegation-validator.d.ts.map +1 -0
  184. package/dist/utils/delegation-validator.js +161 -0
  185. package/dist/utils/delegation-validator.js.map +1 -0
  186. package/dist/utils/error-codes.d.ts +36 -0
  187. package/dist/utils/error-codes.d.ts.map +1 -0
  188. package/dist/utils/error-codes.js +63 -0
  189. package/dist/utils/error-codes.js.map +1 -0
  190. package/dist/utils/error-manager.d.ts +59 -0
  191. package/dist/utils/error-manager.d.ts.map +1 -0
  192. package/dist/utils/error-manager.js +228 -0
  193. package/dist/utils/error-manager.js.map +1 -0
  194. package/dist/utils/helpers.d.ts +27 -0
  195. package/dist/utils/helpers.d.ts.map +1 -0
  196. package/dist/utils/helpers.js +150 -0
  197. package/dist/utils/helpers.js.map +1 -0
  198. package/dist/utils/package-manager-detector.d.ts +14 -0
  199. package/dist/utils/package-manager-detector.d.ts.map +1 -0
  200. package/dist/utils/package-manager-detector.js +162 -0
  201. package/dist/utils/package-manager-detector.js.map +1 -0
  202. package/dist/utils/progress-indicator.d.ts +52 -0
  203. package/dist/utils/progress-indicator.d.ts.map +1 -0
  204. package/dist/utils/progress-indicator.js +102 -0
  205. package/dist/utils/progress-indicator.js.map +1 -0
  206. package/dist/utils/prompt.d.ts +29 -0
  207. package/dist/utils/prompt.d.ts.map +1 -0
  208. package/dist/utils/prompt.js +116 -0
  209. package/dist/utils/prompt.js.map +1 -0
  210. package/dist/utils/shell-completion.d.ts +52 -0
  211. package/dist/utils/shell-completion.d.ts.map +1 -0
  212. package/dist/utils/shell-completion.js +231 -0
  213. package/dist/utils/shell-completion.js.map +1 -0
  214. package/dist/utils/shell-executor.d.ts +15 -0
  215. package/dist/utils/shell-executor.d.ts.map +1 -0
  216. package/dist/utils/shell-executor.js +57 -0
  217. package/dist/utils/shell-executor.js.map +1 -0
  218. package/dist/utils/update-checker.d.ts +48 -0
  219. package/dist/utils/update-checker.d.ts.map +1 -0
  220. package/dist/utils/update-checker.js +241 -0
  221. package/dist/utils/update-checker.js.map +1 -0
  222. package/lib/ccs +21 -1907
  223. package/lib/ccs.ps1 +26 -1800
  224. package/lib/error-codes.ps1 +2 -1
  225. package/lib/prompt.ps1 +2 -2
  226. package/package.json +31 -11
  227. package/scripts/add-shebang.js +39 -0
  228. package/scripts/bump-version.sh +25 -37
  229. package/scripts/dev-install.sh +32 -11
  230. package/scripts/postinstall.js +29 -29
  231. package/bin/auth/auth-commands.js +0 -499
  232. package/bin/auth/profile-detector.js +0 -204
  233. package/bin/auth/profile-registry.js +0 -225
  234. package/bin/ccs.js +0 -1034
  235. package/bin/delegation/README.md +0 -191
  236. package/bin/delegation/delegation-handler.js +0 -212
  237. package/bin/delegation/headless-executor.js +0 -618
  238. package/bin/delegation/result-formatter.js +0 -485
  239. package/bin/delegation/session-manager.js +0 -157
  240. package/bin/delegation/settings-parser.js +0 -109
  241. package/bin/glmt/delta-accumulator.js +0 -276
  242. package/bin/glmt/glmt-proxy.js +0 -495
  243. package/bin/glmt/glmt-transformer.js +0 -999
  244. package/bin/glmt/locale-enforcer.js +0 -72
  245. package/bin/glmt/reasoning-enforcer.js +0 -173
  246. package/bin/glmt/sse-parser.js +0 -96
  247. package/bin/management/doctor.js +0 -721
  248. package/bin/management/instance-manager.js +0 -202
  249. package/bin/management/recovery-manager.js +0 -135
  250. package/bin/management/shared-manager.js +0 -402
  251. package/bin/utils/claude-detector.js +0 -73
  252. package/bin/utils/claude-dir-installer.js +0 -283
  253. package/bin/utils/claude-symlink-manager.js +0 -289
  254. package/bin/utils/config-manager.js +0 -103
  255. package/bin/utils/delegation-validator.js +0 -154
  256. package/bin/utils/error-codes.js +0 -59
  257. package/bin/utils/error-manager.js +0 -165
  258. package/bin/utils/helpers.js +0 -136
  259. package/bin/utils/progress-indicator.js +0 -111
  260. package/bin/utils/prompt.js +0 -134
  261. package/bin/utils/shell-completion.js +0 -256
  262. 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"}