@crewx/cli 0.8.0-rc.66

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 (219) hide show
  1. package/README.md +663 -0
  2. package/dist/ai-provider.service.d.ts +36 -0
  3. package/dist/ai-provider.service.js +315 -0
  4. package/dist/ai-provider.service.js.map +1 -0
  5. package/dist/ai.service.d.ts +17 -0
  6. package/dist/ai.service.js +51 -0
  7. package/dist/ai.service.js.map +1 -0
  8. package/dist/app.module.d.ts +5 -0
  9. package/dist/app.module.js +165 -0
  10. package/dist/app.module.js.map +1 -0
  11. package/dist/cli/agent.handler.d.ts +2 -0
  12. package/dist/cli/agent.handler.js +186 -0
  13. package/dist/cli/agent.handler.js.map +1 -0
  14. package/dist/cli/builtin.handler.d.ts +3 -0
  15. package/dist/cli/builtin.handler.js +110 -0
  16. package/dist/cli/builtin.handler.js.map +1 -0
  17. package/dist/cli/chat.handler.d.ts +20 -0
  18. package/dist/cli/chat.handler.js +446 -0
  19. package/dist/cli/chat.handler.js.map +1 -0
  20. package/dist/cli/cli.handler.d.ts +4 -0
  21. package/dist/cli/cli.handler.js +119 -0
  22. package/dist/cli/cli.handler.js.map +1 -0
  23. package/dist/cli/doctor.handler.d.ts +38 -0
  24. package/dist/cli/doctor.handler.js +495 -0
  25. package/dist/cli/doctor.handler.js.map +1 -0
  26. package/dist/cli/execute.handler.d.ts +2 -0
  27. package/dist/cli/execute.handler.js +376 -0
  28. package/dist/cli/execute.handler.js.map +1 -0
  29. package/dist/cli/help.handler.d.ts +2 -0
  30. package/dist/cli/help.handler.js +10 -0
  31. package/dist/cli/help.handler.js.map +1 -0
  32. package/dist/cli/init.handler.d.ts +26 -0
  33. package/dist/cli/init.handler.js +450 -0
  34. package/dist/cli/init.handler.js.map +1 -0
  35. package/dist/cli/log.handler.d.ts +2 -0
  36. package/dist/cli/log.handler.js +69 -0
  37. package/dist/cli/log.handler.js.map +1 -0
  38. package/dist/cli/mcp.handler.d.ts +3 -0
  39. package/dist/cli/mcp.handler.js +121 -0
  40. package/dist/cli/mcp.handler.js.map +1 -0
  41. package/dist/cli/query.handler.d.ts +2 -0
  42. package/dist/cli/query.handler.js +392 -0
  43. package/dist/cli/query.handler.js.map +1 -0
  44. package/dist/cli/skill.handler.d.ts +2 -0
  45. package/dist/cli/skill.handler.js +252 -0
  46. package/dist/cli/skill.handler.js.map +1 -0
  47. package/dist/cli/slack-files.handler.d.ts +2 -0
  48. package/dist/cli/slack-files.handler.js +291 -0
  49. package/dist/cli/slack-files.handler.js.map +1 -0
  50. package/dist/cli/template.handler.d.ts +2 -0
  51. package/dist/cli/template.handler.js +188 -0
  52. package/dist/cli/template.handler.js.map +1 -0
  53. package/dist/cli/templates.handler.d.ts +2 -0
  54. package/dist/cli/templates.handler.js +100 -0
  55. package/dist/cli/templates.handler.js.map +1 -0
  56. package/dist/cli-options.d.ts +40 -0
  57. package/dist/cli-options.js +371 -0
  58. package/dist/cli-options.js.map +1 -0
  59. package/dist/config/timeout.config.d.ts +14 -0
  60. package/dist/config/timeout.config.js +34 -0
  61. package/dist/config/timeout.config.js.map +1 -0
  62. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  63. package/dist/conversation/base-conversation-history.provider.js +45 -0
  64. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  65. package/dist/conversation/cli-box-reader.adapter.d.ts +6 -0
  66. package/dist/conversation/cli-box-reader.adapter.js +10 -0
  67. package/dist/conversation/cli-box-reader.adapter.js.map +1 -0
  68. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  69. package/dist/conversation/cli-conversation-history.provider.js +112 -0
  70. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  71. package/dist/conversation/cli-task-reader.adapter.d.ts +6 -0
  72. package/dist/conversation/cli-task-reader.adapter.js +25 -0
  73. package/dist/conversation/cli-task-reader.adapter.js.map +1 -0
  74. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  75. package/dist/conversation/conversation-provider.factory.js +50 -0
  76. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  77. package/dist/conversation/index.d.ts +8 -0
  78. package/dist/conversation/index.js +29 -0
  79. package/dist/conversation/index.js.map +1 -0
  80. package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
  81. package/dist/conversation/slack-conversation-history.provider.js +302 -0
  82. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  83. package/dist/crewx.tool.d.ts +360 -0
  84. package/dist/crewx.tool.js +2531 -0
  85. package/dist/crewx.tool.js.map +1 -0
  86. package/dist/crewx.tool.spec.d.ts +1 -0
  87. package/dist/crewx.tool.spec.js +222 -0
  88. package/dist/crewx.tool.spec.js.map +1 -0
  89. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  90. package/dist/guards/bearer-auth.guard.js +44 -0
  91. package/dist/guards/bearer-auth.guard.js.map +1 -0
  92. package/dist/health.controller.d.ts +6 -0
  93. package/dist/health.controller.js +32 -0
  94. package/dist/health.controller.js.map +1 -0
  95. package/dist/main.d.ts +1 -0
  96. package/dist/main.js +311 -0
  97. package/dist/main.js.map +1 -0
  98. package/dist/mcp.controller.d.ts +8 -0
  99. package/dist/mcp.controller.js +62 -0
  100. package/dist/mcp.controller.js.map +1 -0
  101. package/dist/package.json +3 -0
  102. package/dist/providers/dynamic-provider.factory.d.ts +17 -0
  103. package/dist/providers/dynamic-provider.factory.js +138 -0
  104. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  105. package/dist/providers/logger.adapter.d.ts +7 -0
  106. package/dist/providers/logger.adapter.js +107 -0
  107. package/dist/providers/logger.adapter.js.map +1 -0
  108. package/dist/services/agent-loader.service.d.ts +35 -0
  109. package/dist/services/agent-loader.service.js +623 -0
  110. package/dist/services/agent-loader.service.js.map +1 -0
  111. package/dist/services/auth.service.d.ts +9 -0
  112. package/dist/services/auth.service.js +47 -0
  113. package/dist/services/auth.service.js.map +1 -0
  114. package/dist/services/config-validator.service.d.ts +29 -0
  115. package/dist/services/config-validator.service.js +483 -0
  116. package/dist/services/config-validator.service.js.map +1 -0
  117. package/dist/services/config.service.d.ts +45 -0
  118. package/dist/services/config.service.js +352 -0
  119. package/dist/services/config.service.js.map +1 -0
  120. package/dist/services/document-loader.service.d.ts +26 -0
  121. package/dist/services/document-loader.service.js +186 -0
  122. package/dist/services/document-loader.service.js.map +1 -0
  123. package/dist/services/help.service.d.ts +5 -0
  124. package/dist/services/help.service.js +139 -0
  125. package/dist/services/help.service.js.map +1 -0
  126. package/dist/services/intelligent-compression.service.d.ts +20 -0
  127. package/dist/services/intelligent-compression.service.js +179 -0
  128. package/dist/services/intelligent-compression.service.js.map +1 -0
  129. package/dist/services/mcp-client.service.d.ts +26 -0
  130. package/dist/services/mcp-client.service.js +81 -0
  131. package/dist/services/mcp-client.service.js.map +1 -0
  132. package/dist/services/parallel-processing.service.d.ts +108 -0
  133. package/dist/services/parallel-processing.service.js +333 -0
  134. package/dist/services/parallel-processing.service.js.map +1 -0
  135. package/dist/services/provider-bridge.service.d.ts +35 -0
  136. package/dist/services/provider-bridge.service.js +224 -0
  137. package/dist/services/provider-bridge.service.js.map +1 -0
  138. package/dist/services/remote-agent.service.d.ts +50 -0
  139. package/dist/services/remote-agent.service.js +171 -0
  140. package/dist/services/remote-agent.service.js.map +1 -0
  141. package/dist/services/result-formatter.service.d.ts +27 -0
  142. package/dist/services/result-formatter.service.js +126 -0
  143. package/dist/services/result-formatter.service.js.map +1 -0
  144. package/dist/services/skill-loader.service.d.ts +15 -0
  145. package/dist/services/skill-loader.service.js +278 -0
  146. package/dist/services/skill-loader.service.js.map +1 -0
  147. package/dist/services/skill.service.d.ts +69 -0
  148. package/dist/services/skill.service.js +779 -0
  149. package/dist/services/skill.service.js.map +1 -0
  150. package/dist/services/skill.service.spec.d.ts +1 -0
  151. package/dist/services/skill.service.spec.js +168 -0
  152. package/dist/services/skill.service.spec.js.map +1 -0
  153. package/dist/services/task-management.service.d.ts +71 -0
  154. package/dist/services/task-management.service.js +324 -0
  155. package/dist/services/task-management.service.js.map +1 -0
  156. package/dist/services/template.service.d.ts +61 -0
  157. package/dist/services/template.service.js +416 -0
  158. package/dist/services/template.service.js.map +1 -0
  159. package/dist/services/tool-call.service.d.ts +16 -0
  160. package/dist/services/tool-call.service.js +302 -0
  161. package/dist/services/tool-call.service.js.map +1 -0
  162. package/dist/services/tracing.service.d.ts +197 -0
  163. package/dist/services/tracing.service.js +1267 -0
  164. package/dist/services/tracing.service.js.map +1 -0
  165. package/dist/slack/formatters/message.formatter.d.ts +43 -0
  166. package/dist/slack/formatters/message.formatter.js +505 -0
  167. package/dist/slack/formatters/message.formatter.js.map +1 -0
  168. package/dist/slack/services/slack-file-download.service.d.ts +58 -0
  169. package/dist/slack/services/slack-file-download.service.js +558 -0
  170. package/dist/slack/services/slack-file-download.service.js.map +1 -0
  171. package/dist/slack/slack-bot.d.ts +33 -0
  172. package/dist/slack/slack-bot.js +568 -0
  173. package/dist/slack/slack-bot.js.map +1 -0
  174. package/dist/stderr.logger.d.ts +8 -0
  175. package/dist/stderr.logger.js +26 -0
  176. package/dist/stderr.logger.js.map +1 -0
  177. package/dist/types/usage.types.d.ts +107 -0
  178. package/dist/types/usage.types.js +3 -0
  179. package/dist/types/usage.types.js.map +1 -0
  180. package/dist/utils/config-utils.d.ts +15 -0
  181. package/dist/utils/config-utils.js +69 -0
  182. package/dist/utils/config-utils.js.map +1 -0
  183. package/dist/utils/extract-text.d.ts +1 -0
  184. package/dist/utils/extract-text.js +15 -0
  185. package/dist/utils/extract-text.js.map +1 -0
  186. package/dist/utils/mcp-installer.d.ts +20 -0
  187. package/dist/utils/mcp-installer.js +199 -0
  188. package/dist/utils/mcp-installer.js.map +1 -0
  189. package/dist/utils/project-hash.d.ts +6 -0
  190. package/dist/utils/project-hash.js +70 -0
  191. package/dist/utils/project-hash.js.map +1 -0
  192. package/dist/utils/simple-security.d.ts +3 -0
  193. package/dist/utils/simple-security.js +20 -0
  194. package/dist/utils/simple-security.js.map +1 -0
  195. package/dist/utils/stdin-utils.d.ts +6 -0
  196. package/dist/utils/stdin-utils.js +109 -0
  197. package/dist/utils/stdin-utils.js.map +1 -0
  198. package/dist/utils/template-processor.d.ts +27 -0
  199. package/dist/utils/template-processor.js +395 -0
  200. package/dist/utils/template-processor.js.map +1 -0
  201. package/dist/utils/terminal-message-formatter.d.ts +23 -0
  202. package/dist/utils/terminal-message-formatter.js +136 -0
  203. package/dist/utils/terminal-message-formatter.js.map +1 -0
  204. package/dist/version.d.ts +1 -0
  205. package/dist/version.js +17 -0
  206. package/dist/version.js.map +1 -0
  207. package/dist/workspace.service.d.ts +44 -0
  208. package/dist/workspace.service.js +299 -0
  209. package/dist/workspace.service.js.map +1 -0
  210. package/package.json +135 -0
  211. package/scripts/backfill-tokens.js +218 -0
  212. package/scripts/postbuild-cli.mjs +88 -0
  213. package/scripts/postinstall-cli.mjs +30 -0
  214. package/templates/agents/default.yaml +490 -0
  215. package/templates/agents/minimal.yaml +16 -0
  216. package/templates/documents/conversation-history-default.hbs +17 -0
  217. package/templates/documents/crewx-manual.md +2278 -0
  218. package/templates/documents/crewx-quick-guide.md +147 -0
  219. package/templates/versions.json +19 -0
@@ -0,0 +1,371 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.parseCliOptions = parseCliOptions;
40
+ const yargs_1 = __importDefault(require("yargs"));
41
+ const helpers_1 = require("yargs/helpers");
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const KNOWN_OPTIONS = new Set([
45
+ 'install', 'log', 'http', 'raw', 'verbose', 'force', 'f', 'enable-intelligent-compression',
46
+ 'list', 'l', 'clean', 'mention-only',
47
+ 'protocol', 'host', 'port', 'key', 'params', 'config', 'c', 'template', 't',
48
+ 'template-version', 'allow-tool', 'thread', 'provider', 'provider-config',
49
+ 'agent', 'a', 'mode',
50
+ 'help', 'h', 'version', 'v',
51
+ ]);
52
+ const KNOWN_COMMANDS = new Set([
53
+ 'query', 'q', 'execute', 'x', 'doctor', 'init', 'templates', 'template',
54
+ 'agent', 'mcp', 'slack', 'log', 'slack:files', 'help', 'chat', 'skill',
55
+ 'memory', 'search', 'doc', 'wbs', 'cron', 'workflow',
56
+ ]);
57
+ function detectUnknownOptions(argv, command) {
58
+ const unknownOptions = [];
59
+ for (const arg of argv) {
60
+ if (!arg.startsWith('-'))
61
+ continue;
62
+ const optionName = arg.replace(/^-+/, '').split('=')[0];
63
+ if (!optionName)
64
+ continue;
65
+ if (KNOWN_OPTIONS.has(optionName))
66
+ continue;
67
+ if (optionName.startsWith('no-')) {
68
+ const baseOption = optionName.slice(3);
69
+ if (KNOWN_OPTIONS.has(baseOption))
70
+ continue;
71
+ }
72
+ unknownOptions.push(arg);
73
+ }
74
+ return unknownOptions;
75
+ }
76
+ function showUnknownOptionsError(unknownOptions, command) {
77
+ const optionList = unknownOptions.join(', ');
78
+ console.error(`Error: Unknown option${unknownOptions.length > 1 ? 's' : ''}: ${optionList}`);
79
+ if (command && KNOWN_COMMANDS.has(command)) {
80
+ console.error(`Run 'crewx ${command} --help' to see available options.`);
81
+ }
82
+ else {
83
+ console.error(`Run 'crewx --help' to see available commands and options.`);
84
+ }
85
+ process.exit(1);
86
+ }
87
+ function parseCliOptions() {
88
+ const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../package.json'), 'utf-8'));
89
+ const parsed = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
90
+ .version(packageJson.version)
91
+ .alias('version', [])
92
+ .command('query [message...]', 'Query agents with a message', (yargs) => {
93
+ yargs.positional('message', {
94
+ description: 'Message to send to agents (supports @agent mentions). Multiple arguments will be joined.',
95
+ type: 'string',
96
+ array: true
97
+ });
98
+ })
99
+ .command('q [message...]', 'Shorthand for query', (yargs) => {
100
+ yargs.positional('message', {
101
+ description: 'Message to send to agents (supports @agent mentions). Multiple arguments will be joined.',
102
+ type: 'string',
103
+ array: true
104
+ });
105
+ })
106
+ .command('execute [task...]', 'Execute a task with agents', (yargs) => {
107
+ yargs.positional('task', {
108
+ description: 'Task to execute with agents (supports @agent mentions). Multiple arguments will be joined.',
109
+ type: 'string',
110
+ array: true
111
+ });
112
+ })
113
+ .command('x [task...]', 'Shorthand for execute', (yargs) => {
114
+ yargs.positional('task', {
115
+ description: 'Task to execute with agents (supports @agent mentions). Multiple arguments will be joined.',
116
+ type: 'string',
117
+ array: true
118
+ });
119
+ })
120
+ .command('doctor', 'Check AI provider status', () => { })
121
+ .command('init', 'Initialize CrewX project', (yargs) => {
122
+ yargs.option('template', {
123
+ alias: 't',
124
+ type: 'string',
125
+ default: 'default',
126
+ description: 'Template to use (default, minimal, development, production)'
127
+ });
128
+ yargs.option('template-version', {
129
+ type: 'string',
130
+ default: 'main',
131
+ description: 'Template version to download (main, v0.1.8, etc.)'
132
+ });
133
+ yargs.option('force', {
134
+ alias: 'f',
135
+ type: 'boolean',
136
+ default: false,
137
+ description: 'Overwrite existing configuration file'
138
+ });
139
+ })
140
+ .command('templates', 'Manage agent templates', (yargs) => {
141
+ yargs.command('list', 'List available templates');
142
+ yargs.command('update', 'Clear cache and re-download templates');
143
+ })
144
+ .command('template [subcommand] [name]', 'Project scaffolding system', (yargs) => {
145
+ yargs.positional('subcommand', {
146
+ description: 'Subcommand (init, list, show)',
147
+ type: 'string',
148
+ choices: ['init', 'list', 'show']
149
+ });
150
+ yargs.positional('name', {
151
+ description: 'Project name (for init) or template name (for show)',
152
+ type: 'string'
153
+ });
154
+ yargs.option('template', {
155
+ alias: 't',
156
+ type: 'string',
157
+ default: 'wbs-automation',
158
+ description: 'Template to use for init (wbs-automation, docusaurus-admin, dev-team)'
159
+ });
160
+ })
161
+ .command('skill [action] [target] [params...]', 'Manage and execute skills', (yargs) => {
162
+ yargs.positional('action', {
163
+ description: 'Action (list, info) or skill name to execute',
164
+ type: 'string'
165
+ });
166
+ yargs.positional('target', {
167
+ description: 'Skill name (for info) or first argument for skill',
168
+ type: 'string'
169
+ });
170
+ yargs.positional('params', {
171
+ description: 'Additional arguments for skill execution',
172
+ type: 'string',
173
+ array: true
174
+ });
175
+ })
176
+ .command('agent [action]', 'Manage configured agents', (yargs) => {
177
+ yargs.command(['ls', 'list'], 'List available agents');
178
+ })
179
+ .command('mcp', 'Start MCP server for IDE integration', () => { })
180
+ .command('slack', 'Start Slack Bot server', (yargs) => {
181
+ yargs.option('agent', {
182
+ alias: 'a',
183
+ type: 'string',
184
+ default: 'claude',
185
+ description: 'Default agent to use for Slack conversations (claude, copilot, gemini, or custom agent ID)'
186
+ });
187
+ yargs.option('mode', {
188
+ choices: ['query', 'execute'],
189
+ default: 'query',
190
+ description: 'Slack bot mode: query (read-only) or execute (allow file changes)',
191
+ });
192
+ yargs.option('mention-only', {
193
+ type: 'boolean',
194
+ default: false,
195
+ description: 'Require explicit @mention in threads (prevents auto-response to thread messages)',
196
+ });
197
+ })
198
+ .command('log [action]', 'Manage task logs', (yargs) => {
199
+ yargs.command(['ls', 'list'], 'List all task logs');
200
+ yargs.positional('action', {
201
+ description: 'Action or task ID (ls/list or task_id)',
202
+ type: 'string'
203
+ });
204
+ })
205
+ .command('slack:files', 'Download and manage Slack thread files', (yargs) => {
206
+ yargs.option('thread', {
207
+ alias: 't',
208
+ type: 'string',
209
+ description: 'Slack thread timestamp (e.g., 1234567890.123456)'
210
+ });
211
+ yargs.option('list', {
212
+ alias: 'l',
213
+ type: 'boolean',
214
+ default: false,
215
+ description: 'List downloaded files'
216
+ });
217
+ yargs.option('clean', {
218
+ type: 'boolean',
219
+ default: false,
220
+ description: 'Clean/delete downloaded files'
221
+ });
222
+ })
223
+ .command('help', 'Show help', () => { })
224
+ .option('install', {
225
+ type: 'boolean',
226
+ default: false,
227
+ description: 'Run installation and setup process'
228
+ })
229
+ .option('log', {
230
+ type: 'boolean',
231
+ default: false,
232
+ description: 'Enable detailed logging'
233
+ })
234
+ .option('protocol', {
235
+ choices: ['STDIO', 'HTTP'],
236
+ default: 'STDIO',
237
+ description: 'MCP protocol to use'
238
+ })
239
+ .option('http', {
240
+ type: 'boolean',
241
+ default: false,
242
+ description: 'Shortcut to run MCP server over HTTP (equivalent to --protocol=HTTP)'
243
+ })
244
+ .option('host', {
245
+ type: 'string',
246
+ default: '127.0.0.1',
247
+ description: 'Host/IP address to bind the MCP HTTP server'
248
+ })
249
+ .option('port', {
250
+ type: 'number',
251
+ default: 3000,
252
+ description: 'Port for HTTP protocol (if used)'
253
+ })
254
+ .option('key', {
255
+ type: 'string',
256
+ description: 'Security key for MCP HTTP server authentication (defaults to CREWX_MCP_KEY env if available)'
257
+ })
258
+ .option('params', {
259
+ type: 'string',
260
+ description: 'JSON string with parameters for MCP tool invocation'
261
+ })
262
+ .option('config', {
263
+ alias: 'c',
264
+ type: 'string',
265
+ description: 'Path to agents configuration file (default: crewx.yaml or agents.yaml)'
266
+ })
267
+ .option('allow-tool', {
268
+ type: 'array',
269
+ default: [],
270
+ description: 'Allowed tools for Copilot agent (e.g., terminal,files,web)',
271
+ coerce: (value) => {
272
+ if (typeof value === 'string') {
273
+ return value.split(',').map(tool => tool.trim());
274
+ }
275
+ return value || [];
276
+ }
277
+ })
278
+ .option('raw', {
279
+ type: 'boolean',
280
+ default: false,
281
+ description: '[DEPRECATED] Default output is now raw. This flag is a no-op.'
282
+ })
283
+ .option('verbose', {
284
+ alias: 'v',
285
+ type: 'boolean',
286
+ default: false,
287
+ description: 'Enable full output with logs, progress, and formatting (q/x commands)'
288
+ })
289
+ .option('enable-intelligent-compression', {
290
+ type: 'boolean',
291
+ default: true,
292
+ description: 'Use intelligent conversation compression'
293
+ })
294
+ .option('thread', {
295
+ alias: 't',
296
+ type: 'string',
297
+ description: 'Thread ID for conversation continuity'
298
+ })
299
+ .option('provider', {
300
+ type: 'string',
301
+ description: 'AI provider to use (e.g., cli/claude, cli/gemini, cli/copilot, cli/codex)'
302
+ })
303
+ .option('provider-config', {
304
+ type: 'string',
305
+ description: 'Path to provider configuration file'
306
+ })
307
+ .help(false)
308
+ .parseSync();
309
+ const positionalArgs = (parsed._ || []);
310
+ const primaryCommand = positionalArgs.length > 0 ? String(positionalArgs[0]) : undefined;
311
+ const secondaryCommand = positionalArgs.length > 1 ? String(positionalArgs[1]) : undefined;
312
+ const tertiaryValue = positionalArgs.length > 2 ? String(positionalArgs[2]) : undefined;
313
+ const rawArgs = (0, helpers_1.hideBin)(process.argv);
314
+ const BUILTIN_TOOL_COMMANDS = new Set(['memory', 'search', 'doc', 'wbs', 'cron', 'workflow', 'skill']);
315
+ if (!rawArgs.includes('--help') && !rawArgs.includes('-h') && !BUILTIN_TOOL_COMMANDS.has(primaryCommand ?? '')) {
316
+ const unknownOptions = detectUnknownOptions(rawArgs, primaryCommand);
317
+ if (unknownOptions.length > 0) {
318
+ showUnknownOptionsError(unknownOptions, primaryCommand);
319
+ }
320
+ }
321
+ if (parsed.verbose) {
322
+ process.env.CREWX_VERBOSE = '1';
323
+ }
324
+ const rawExplicitlyPassed = process.argv.includes('--raw');
325
+ if (rawExplicitlyPassed) {
326
+ process.stderr.write('Warning: --raw is deprecated and will be removed in a future version. ' +
327
+ 'Default output is now raw (pure result). Use --verbose for full output.\n');
328
+ }
329
+ const resolvedProtocol = parsed.http === true ? 'HTTP' : parsed.protocol;
330
+ const resolvedKey = parsed.key ?? process.env.CREWX_MCP_KEY ?? undefined;
331
+ return {
332
+ install: parsed.install,
333
+ log: parsed.log,
334
+ protocol: resolvedProtocol,
335
+ host: parsed.host,
336
+ port: parsed.port,
337
+ allowTool: parsed['allow-tool'] || [],
338
+ raw: parsed.raw,
339
+ verbose: parsed.verbose,
340
+ enableIntelligentCompression: parsed['enable-intelligent-compression'],
341
+ thread: parsed.thread,
342
+ provider: parsed.provider || process.env.CREWX_PROVIDER,
343
+ providerConfig: parsed['provider-config'],
344
+ command: primaryCommand,
345
+ subcommand: secondaryCommand,
346
+ query: Array.isArray(parsed.message) ? parsed.message : (parsed.message ? [parsed.message] : undefined),
347
+ execute: Array.isArray(parsed.task) ? parsed.task : (parsed.task ? [parsed.task] : undefined),
348
+ doctor: primaryCommand === 'doctor',
349
+ logCommand: primaryCommand === 'log',
350
+ logAction: parsed.action,
351
+ config: parsed.config,
352
+ template: parsed.template,
353
+ templateVersion: parsed['template-version'],
354
+ force: parsed.force,
355
+ templateSubcommand: parsed.subcommand,
356
+ templateProjectName: parsed.name,
357
+ templateName: parsed.name,
358
+ skillAction: parsed.action,
359
+ skillTarget: parsed.target,
360
+ skillParams: parsed.params,
361
+ slackAgent: parsed.agent,
362
+ slackMode: parsed.mode || 'query',
363
+ slackMentionOnly: parsed['mention-only'] || false,
364
+ http: parsed.http,
365
+ key: resolvedKey,
366
+ mcpToolName: secondaryCommand === 'call_tool' ? tertiaryValue : undefined,
367
+ mcpParams: typeof parsed.params === 'string' ? parsed.params : undefined,
368
+ rawArgs: process.argv.slice(2),
369
+ };
370
+ }
371
+ //# sourceMappingURL=cli-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface TimeoutConfig {
2
+ claudeQuery: number;
3
+ claudeExecute: number;
4
+ geminiQuery: number;
5
+ geminiExecute: number;
6
+ copilotQuery: number;
7
+ copilotExecute: number;
8
+ parallel: number;
9
+ stdinInitial: number;
10
+ stdinChunk: number;
11
+ stdinComplete: number;
12
+ }
13
+ export declare function getTimeoutConfig(): TimeoutConfig;
14
+ export declare function getDefaultTimeoutConfig(): TimeoutConfig;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTimeoutConfig = getTimeoutConfig;
4
+ exports.getDefaultTimeoutConfig = getDefaultTimeoutConfig;
5
+ const DEFAULT_TIMEOUTS = {
6
+ claudeQuery: 1800000,
7
+ claudeExecute: 1800000,
8
+ geminiQuery: 1800000,
9
+ geminiExecute: 1800000,
10
+ copilotQuery: 1800000,
11
+ copilotExecute: 1800000,
12
+ parallel: 1800000,
13
+ stdinInitial: 30000,
14
+ stdinChunk: 1800000,
15
+ stdinComplete: 100,
16
+ };
17
+ function getTimeoutConfig() {
18
+ return {
19
+ claudeQuery: parseInt(process.env.CREWCODE_TIMEOUT_CLAUDE_QUERY || '') || DEFAULT_TIMEOUTS.claudeQuery,
20
+ claudeExecute: parseInt(process.env.CREWCODE_TIMEOUT_CLAUDE_EXECUTE || '') || DEFAULT_TIMEOUTS.claudeExecute,
21
+ geminiQuery: parseInt(process.env.CREWCODE_TIMEOUT_GEMINI_QUERY || '') || DEFAULT_TIMEOUTS.geminiQuery,
22
+ geminiExecute: parseInt(process.env.CREWCODE_TIMEOUT_GEMINI_EXECUTE || '') || DEFAULT_TIMEOUTS.geminiExecute,
23
+ copilotQuery: parseInt(process.env.CREWCODE_TIMEOUT_COPILOT_QUERY || '') || DEFAULT_TIMEOUTS.copilotQuery,
24
+ copilotExecute: parseInt(process.env.CREWCODE_TIMEOUT_COPILOT_EXECUTE || '') || DEFAULT_TIMEOUTS.copilotExecute,
25
+ parallel: parseInt(process.env.CREWCODE_TIMEOUT_PARALLEL || '') || DEFAULT_TIMEOUTS.parallel,
26
+ stdinInitial: parseInt(process.env.CREWCODE_TIMEOUT_STDIN_INITIAL || '') || DEFAULT_TIMEOUTS.stdinInitial,
27
+ stdinChunk: parseInt(process.env.CREWCODE_TIMEOUT_STDIN_CHUNK || '') || DEFAULT_TIMEOUTS.stdinChunk,
28
+ stdinComplete: parseInt(process.env.CREWCODE_TIMEOUT_STDIN_COMPLETE || '') || DEFAULT_TIMEOUTS.stdinComplete,
29
+ };
30
+ }
31
+ function getDefaultTimeoutConfig() {
32
+ return { ...DEFAULT_TIMEOUTS };
33
+ }
34
+ //# sourceMappingURL=timeout.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.config.js","sourceRoot":"","sources":["../../src/config/timeout.config.ts"],"names":[],"mappings":";;AAyDA,4CAaC;AAKD,0DAEC;AArCD,MAAM,gBAAgB,GAAkB;IACtC,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,OAAO;IACjB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,GAAG;CACnB,CAAC;AAMF,SAAgB,gBAAgB;IAC9B,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,WAAW;QACtG,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,aAAa;QAC5G,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,WAAW;QACtG,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,aAAa;QAC5G,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,YAAY;QACzG,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,cAAc;QAC/G,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ;QAC5F,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,YAAY;QACzG,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,UAAU;QACnG,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,IAAI,gBAAgB,CAAC,aAAa;KAC7G,CAAC;AACJ,CAAC;AAKD,SAAgB,uBAAuB;IACrC,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { ConversationThread, FetchHistoryOptions, IConversationHistoryProvider } from '@crewx/sdk';
3
+ import { IntelligentCompressionService } from '../services/intelligent-compression.service';
4
+ export declare abstract class BaseConversationHistoryProvider implements IConversationHistoryProvider {
5
+ protected readonly logger: Logger;
6
+ protected compressionService?: IntelligentCompressionService;
7
+ constructor(loggerContext: string, compressionService?: IntelligentCompressionService);
8
+ abstract fetchHistory(threadId: string, options?: FetchHistoryOptions): Promise<ConversationThread>;
9
+ abstract hasHistory(threadId: string): Promise<boolean>;
10
+ formatForAI(thread: ConversationThread, options?: FetchHistoryOptions): Promise<string>;
11
+ protected sanitizeMessage(text: string): string;
12
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseConversationHistoryProvider = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ class BaseConversationHistoryProvider {
6
+ constructor(loggerContext, compressionService) {
7
+ this.logger = new common_1.Logger(loggerContext);
8
+ this.compressionService = compressionService;
9
+ }
10
+ async formatForAI(thread, options) {
11
+ const maxLength = options?.maxContextLength || 4000;
12
+ const limit = options?.limit || 20;
13
+ const excludeCurrent = options?.excludeCurrent ?? true;
14
+ let messages = [...thread.messages];
15
+ if (excludeCurrent && messages.length > 0) {
16
+ messages = messages.slice(0, -1);
17
+ }
18
+ if (messages.length === 0) {
19
+ return '';
20
+ }
21
+ if (this.compressionService && messages.length > limit) {
22
+ this.logger.debug(`Using intelligent compression for ${messages.length} messages`);
23
+ const threadForCompression = {
24
+ ...thread,
25
+ messages: messages
26
+ };
27
+ return await this.compressionService.compressConversationHistory(threadForCompression, {
28
+ maxTokens: Math.floor(maxLength / 4),
29
+ maxMessages: limit,
30
+ preserveRecentCount: Math.min(5, Math.floor(limit / 4)),
31
+ preserveImportant: true
32
+ });
33
+ }
34
+ return '';
35
+ }
36
+ sanitizeMessage(text) {
37
+ return text
38
+ .replace(/password[:\s]*\S+/gi, 'password: ***')
39
+ .replace(/token[:\s]*\S+/gi, 'token: ***')
40
+ .replace(/api[_-]?key[:\s]*\S+/gi, 'api_key: ***')
41
+ .replace(/secret[:\s]*\S+/gi, 'secret: ***');
42
+ }
43
+ }
44
+ exports.BaseConversationHistoryProvider = BaseConversationHistoryProvider;
45
+ //# sourceMappingURL=base-conversation-history.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-conversation-history.provider.js","sourceRoot":"","sources":["../../src/conversation/base-conversation-history.provider.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAYxC,MAAsB,+BAA+B;IAMnD,YACE,aAAqB,EACrB,kBAAkD;QAElD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAcD,KAAK,CAAC,WAAW,CACf,MAA0B,EAC1B,OAA6B;QAE7B,MAAM,SAAS,GAAG,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC;QAEvD,IAAI,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAGpC,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QAGD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAGD,IAAI,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;YAEnF,MAAM,oBAAoB,GAAuB;gBAC/C,GAAG,MAAM;gBACT,QAAQ,EAAE,QAAQ;aACnB,CAAC;YAEF,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAC9D,oBAAoB,EACpB;gBACE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpC,WAAW,EAAE,KAAK;gBAClB,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvD,iBAAiB,EAAE,IAAI;aACxB,CACF,CAAC;QACJ,CAAC;QAMD,OAAO,EAAE,CAAC;IACZ,CAAC;IAKS,eAAe,CAAC,IAAY;QACpC,OAAO,IAAI;aACR,OAAO,CAAC,qBAAqB,EAAE,eAAe,CAAC;aAC/C,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC;aACzC,OAAO,CAAC,wBAAwB,EAAE,cAAc,CAAC;aACjD,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC;CACF;AAnFD,0EAmFC"}
@@ -0,0 +1,6 @@
1
+ import type { IBoxServiceReader } from '@crewx/sdk';
2
+ export declare class CliBoxReaderAdapter implements IBoxServiceReader {
3
+ listBoxes(_threadId: string): {
4
+ boxes: never[];
5
+ };
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliBoxReaderAdapter = void 0;
4
+ class CliBoxReaderAdapter {
5
+ listBoxes(_threadId) {
6
+ return { boxes: [] };
7
+ }
8
+ }
9
+ exports.CliBoxReaderAdapter = CliBoxReaderAdapter;
10
+ //# sourceMappingURL=cli-box-reader.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-box-reader.adapter.js","sourceRoot":"","sources":["../../src/conversation/cli-box-reader.adapter.ts"],"names":[],"mappings":";;;AAOA,MAAa,mBAAmB;IAC9B,SAAS,CAAC,SAAiB;QACzB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;CACF;AAJD,kDAIC"}
@@ -0,0 +1,16 @@
1
+ import { BaseConversationHistoryProvider } from './base-conversation-history.provider';
2
+ import { ConversationMessage, ConversationThread, FetchHistoryOptions } from '@crewx/sdk';
3
+ export declare class CliConversationHistoryProvider extends BaseConversationHistoryProvider {
4
+ private storage;
5
+ constructor();
6
+ initialize(): Promise<void>;
7
+ fetchHistory(threadId: string, options?: FetchHistoryOptions): Promise<ConversationThread>;
8
+ addMessage(threadId: string, userId: string, text: string, isAssistant?: boolean, agentId?: string, metadata?: Record<string, any>): Promise<ConversationMessage>;
9
+ hasHistory(threadId: string): Promise<boolean>;
10
+ formatForAI(thread: ConversationThread, options?: FetchHistoryOptions): Promise<string>;
11
+ listThreads(): Promise<string[]>;
12
+ deleteThread(threadId: string): Promise<void>;
13
+ createThread(threadId?: string): Promise<string>;
14
+ private createEmptyThread;
15
+ cleanupOldThreads(daysToKeep?: number): Promise<number>;
16
+ }