@crewx/cli 0.8.3-rc.9 → 0.8.4-rc.0

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 (222) hide show
  1. package/README.md +33 -33
  2. package/bin/crewx +2 -2
  3. package/dist/ai-provider.service.d.ts +34 -0
  4. package/dist/ai-provider.service.js +311 -0
  5. package/dist/ai-provider.service.js.map +1 -0
  6. package/dist/ai.service.d.ts +17 -0
  7. package/dist/ai.service.js +51 -0
  8. package/dist/ai.service.js.map +1 -0
  9. package/dist/app.module.d.ts +5 -0
  10. package/dist/app.module.js +165 -0
  11. package/dist/app.module.js.map +1 -0
  12. package/dist/cli/agent.handler.d.ts +2 -0
  13. package/dist/cli/agent.handler.js +186 -0
  14. package/dist/cli/agent.handler.js.map +1 -0
  15. package/dist/cli/builtin.handler.d.ts +3 -0
  16. package/dist/cli/builtin.handler.js +110 -0
  17. package/dist/cli/builtin.handler.js.map +1 -0
  18. package/dist/cli/chat.handler.d.ts +20 -0
  19. package/dist/cli/chat.handler.js +446 -0
  20. package/dist/cli/chat.handler.js.map +1 -0
  21. package/dist/cli/cli.handler.d.ts +4 -0
  22. package/dist/cli/cli.handler.js +119 -0
  23. package/dist/cli/cli.handler.js.map +1 -0
  24. package/dist/cli/doctor.handler.d.ts +38 -0
  25. package/dist/cli/doctor.handler.js +495 -0
  26. package/dist/cli/doctor.handler.js.map +1 -0
  27. package/dist/cli/execute.handler.d.ts +2 -0
  28. package/dist/cli/execute.handler.js +321 -0
  29. package/dist/cli/execute.handler.js.map +1 -0
  30. package/dist/cli/help.handler.d.ts +2 -0
  31. package/dist/cli/help.handler.js +10 -0
  32. package/dist/cli/help.handler.js.map +1 -0
  33. package/dist/cli/init.handler.d.ts +26 -0
  34. package/dist/cli/init.handler.js +450 -0
  35. package/dist/cli/init.handler.js.map +1 -0
  36. package/dist/cli/log.handler.d.ts +2 -0
  37. package/dist/cli/log.handler.js +69 -0
  38. package/dist/cli/log.handler.js.map +1 -0
  39. package/dist/cli/mcp.handler.d.ts +3 -0
  40. package/dist/cli/mcp.handler.js +121 -0
  41. package/dist/cli/mcp.handler.js.map +1 -0
  42. package/dist/cli/query.handler.d.ts +2 -0
  43. package/dist/cli/query.handler.js +379 -0
  44. package/dist/cli/query.handler.js.map +1 -0
  45. package/dist/cli/skill.handler.d.ts +2 -0
  46. package/dist/cli/skill.handler.js +252 -0
  47. package/dist/cli/skill.handler.js.map +1 -0
  48. package/dist/cli/slack-files.handler.d.ts +2 -0
  49. package/dist/cli/slack-files.handler.js +291 -0
  50. package/dist/cli/slack-files.handler.js.map +1 -0
  51. package/dist/cli/template.handler.d.ts +2 -0
  52. package/dist/cli/template.handler.js +188 -0
  53. package/dist/cli/template.handler.js.map +1 -0
  54. package/dist/cli/templates.handler.d.ts +2 -0
  55. package/dist/cli/templates.handler.js +100 -0
  56. package/dist/cli/templates.handler.js.map +1 -0
  57. package/dist/cli-options.d.ts +39 -0
  58. package/dist/cli-options.js +355 -0
  59. package/dist/cli-options.js.map +1 -0
  60. package/dist/commands/agent.js +23 -23
  61. package/dist/commands/init.js +36 -28
  62. package/dist/commands/resolve-prompt.d.ts +4 -4
  63. package/dist/commands/resolve-prompt.js +5 -5
  64. package/dist/config/timeout.config.d.ts +14 -0
  65. package/dist/config/timeout.config.js +34 -0
  66. package/dist/config/timeout.config.js.map +1 -0
  67. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  68. package/dist/conversation/base-conversation-history.provider.js +45 -0
  69. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  70. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  71. package/dist/conversation/cli-conversation-history.provider.js +111 -0
  72. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  73. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  74. package/dist/conversation/conversation-provider.factory.js +50 -0
  75. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  76. package/dist/conversation/index.d.ts +6 -0
  77. package/dist/conversation/index.js +27 -0
  78. package/dist/conversation/index.js.map +1 -0
  79. package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
  80. package/dist/conversation/slack-conversation-history.provider.js +302 -0
  81. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  82. package/dist/crewx.tool.d.ts +359 -0
  83. package/dist/crewx.tool.js +2501 -0
  84. package/dist/crewx.tool.js.map +1 -0
  85. package/dist/crewx.tool.spec.d.ts +1 -0
  86. package/dist/crewx.tool.spec.js +158 -0
  87. package/dist/crewx.tool.spec.js.map +1 -0
  88. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  89. package/dist/guards/bearer-auth.guard.js +44 -0
  90. package/dist/guards/bearer-auth.guard.js.map +1 -0
  91. package/dist/health.controller.d.ts +6 -0
  92. package/dist/health.controller.js +32 -0
  93. package/dist/health.controller.js.map +1 -0
  94. package/dist/main.js +72 -71
  95. package/dist/main.js.map +1 -0
  96. package/dist/mcp.controller.d.ts +8 -0
  97. package/dist/mcp.controller.js +62 -0
  98. package/dist/mcp.controller.js.map +1 -0
  99. package/dist/package.json +3 -0
  100. package/dist/providers/dynamic-provider.factory.d.ts +15 -0
  101. package/dist/providers/dynamic-provider.factory.js +133 -0
  102. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  103. package/dist/providers/logger.adapter.d.ts +6 -0
  104. package/dist/providers/logger.adapter.js +102 -0
  105. package/dist/providers/logger.adapter.js.map +1 -0
  106. package/dist/services/agent-loader.service.d.ts +35 -0
  107. package/dist/services/agent-loader.service.js +622 -0
  108. package/dist/services/agent-loader.service.js.map +1 -0
  109. package/dist/services/auth.service.d.ts +9 -0
  110. package/dist/services/auth.service.js +47 -0
  111. package/dist/services/auth.service.js.map +1 -0
  112. package/dist/services/config-validator.service.d.ts +29 -0
  113. package/dist/services/config-validator.service.js +483 -0
  114. package/dist/services/config-validator.service.js.map +1 -0
  115. package/dist/services/config.service.d.ts +45 -0
  116. package/dist/services/config.service.js +352 -0
  117. package/dist/services/config.service.js.map +1 -0
  118. package/dist/services/document-loader.service.d.ts +21 -0
  119. package/dist/services/document-loader.service.js +156 -0
  120. package/dist/services/document-loader.service.js.map +1 -0
  121. package/dist/services/help.service.d.ts +5 -0
  122. package/dist/services/help.service.js +139 -0
  123. package/dist/services/help.service.js.map +1 -0
  124. package/dist/services/intelligent-compression.service.d.ts +20 -0
  125. package/dist/services/intelligent-compression.service.js +179 -0
  126. package/dist/services/intelligent-compression.service.js.map +1 -0
  127. package/dist/services/mcp-client.service.d.ts +26 -0
  128. package/dist/services/mcp-client.service.js +81 -0
  129. package/dist/services/mcp-client.service.js.map +1 -0
  130. package/dist/services/parallel-processing.service.d.ts +108 -0
  131. package/dist/services/parallel-processing.service.js +333 -0
  132. package/dist/services/parallel-processing.service.js.map +1 -0
  133. package/dist/services/provider-bridge.service.d.ts +35 -0
  134. package/dist/services/provider-bridge.service.js +224 -0
  135. package/dist/services/provider-bridge.service.js.map +1 -0
  136. package/dist/services/remote-agent.service.d.ts +50 -0
  137. package/dist/services/remote-agent.service.js +171 -0
  138. package/dist/services/remote-agent.service.js.map +1 -0
  139. package/dist/services/result-formatter.service.d.ts +27 -0
  140. package/dist/services/result-formatter.service.js +126 -0
  141. package/dist/services/result-formatter.service.js.map +1 -0
  142. package/dist/services/skill-loader.service.d.ts +15 -0
  143. package/dist/services/skill-loader.service.js +278 -0
  144. package/dist/services/skill-loader.service.js.map +1 -0
  145. package/dist/services/skill.service.d.ts +67 -0
  146. package/dist/services/skill.service.js +670 -0
  147. package/dist/services/skill.service.js.map +1 -0
  148. package/dist/services/skill.service.spec.d.ts +1 -0
  149. package/dist/services/skill.service.spec.js +35 -0
  150. package/dist/services/skill.service.spec.js.map +1 -0
  151. package/dist/services/task-management.service.d.ts +65 -0
  152. package/dist/services/task-management.service.js +288 -0
  153. package/dist/services/task-management.service.js.map +1 -0
  154. package/dist/services/template.service.d.ts +61 -0
  155. package/dist/services/template.service.js +416 -0
  156. package/dist/services/template.service.js.map +1 -0
  157. package/dist/services/tool-call.service.d.ts +19 -0
  158. package/dist/services/tool-call.service.js +1061 -0
  159. package/dist/services/tool-call.service.js.map +1 -0
  160. package/dist/services/tracing.service.d.ts +200 -0
  161. package/dist/services/tracing.service.js +1290 -0
  162. package/dist/services/tracing.service.js.map +1 -0
  163. package/dist/slack/formatters/message.formatter.d.ts +32 -0
  164. package/dist/slack/formatters/message.formatter.js +352 -0
  165. package/dist/slack/formatters/message.formatter.js.map +1 -0
  166. package/dist/slack/services/slack-file-download.service.d.ts +58 -0
  167. package/dist/slack/services/slack-file-download.service.js +558 -0
  168. package/dist/slack/services/slack-file-download.service.js.map +1 -0
  169. package/dist/slack/slack-bot.d.ts +33 -0
  170. package/dist/slack/slack-bot.js +567 -0
  171. package/dist/slack/slack-bot.js.map +1 -0
  172. package/dist/stderr.logger.d.ts +8 -0
  173. package/dist/stderr.logger.js +26 -0
  174. package/dist/stderr.logger.js.map +1 -0
  175. package/dist/types/usage.types.d.ts +107 -0
  176. package/dist/types/usage.types.js +3 -0
  177. package/dist/types/usage.types.js.map +1 -0
  178. package/dist/utils/config-utils.d.ts +15 -0
  179. package/dist/utils/config-utils.js +69 -0
  180. package/dist/utils/config-utils.js.map +1 -0
  181. package/dist/utils/extract-text.d.ts +1 -0
  182. package/dist/utils/extract-text.js +15 -0
  183. package/dist/utils/extract-text.js.map +1 -0
  184. package/dist/utils/mcp-installer.d.ts +20 -0
  185. package/dist/utils/mcp-installer.js +199 -0
  186. package/dist/utils/mcp-installer.js.map +1 -0
  187. package/dist/utils/project-hash.d.ts +6 -0
  188. package/dist/utils/project-hash.js +70 -0
  189. package/dist/utils/project-hash.js.map +1 -0
  190. package/dist/utils/simple-security.d.ts +3 -0
  191. package/dist/utils/simple-security.js +20 -0
  192. package/dist/utils/simple-security.js.map +1 -0
  193. package/dist/utils/stdin-utils.d.ts +6 -0
  194. package/dist/utils/stdin-utils.js +109 -0
  195. package/dist/utils/stdin-utils.js.map +1 -0
  196. package/dist/utils/template-processor.d.ts +4 -0
  197. package/dist/utils/template-processor.js +266 -0
  198. package/dist/utils/template-processor.js.map +1 -0
  199. package/dist/utils/terminal-message-formatter.d.ts +23 -0
  200. package/dist/utils/terminal-message-formatter.js +136 -0
  201. package/dist/utils/terminal-message-formatter.js.map +1 -0
  202. package/dist/version.d.ts +1 -0
  203. package/dist/version.js +17 -0
  204. package/dist/version.js.map +1 -0
  205. package/dist/workspace.service.d.ts +44 -0
  206. package/dist/workspace.service.js +299 -0
  207. package/dist/workspace.service.js.map +1 -0
  208. package/package.json +18 -18
  209. package/dist/commands/task-db.d.ts +0 -33
  210. package/dist/commands/task-db.js +0 -107
  211. package/dist/examples/deny-secrets-plugin.d.ts +0 -22
  212. package/dist/examples/deny-secrets-plugin.js +0 -40
  213. package/dist/plugins/examples/echo-hook.d.ts +0 -24
  214. package/dist/plugins/examples/echo-hook.js +0 -60
  215. package/dist/plugins/examples/verify-echo-hook.d.ts +0 -8
  216. package/dist/plugins/examples/verify-echo-hook.js +0 -47
  217. package/dist/plugins/sqlite-tracing.d.ts +0 -11
  218. package/dist/plugins/sqlite-tracing.js +0 -19
  219. package/dist/repository/workspace.repository.d.ts +0 -26
  220. package/dist/repository/workspace.repository.js +0 -111
  221. package/dist/schema/tasks.d.ts +0 -7
  222. package/dist/schema/tasks.js +0 -48
@@ -0,0 +1,165 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var AppModule_1;
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.AppModule = void 0;
44
+ const common_1 = require("@nestjs/common");
45
+ const core_1 = require("@nestjs/core");
46
+ const nestjs_mcp_adapter_1 = require("@sowonai/nestjs-mcp-adapter");
47
+ const ai_service_1 = require("./ai.service");
48
+ const workspace_service_1 = require("./workspace.service");
49
+ const crewx_tool_1 = require("./crewx.tool");
50
+ const mcp_controller_1 = require("./mcp.controller");
51
+ const crewx_sdk_1 = require("@sowonai/crewx-sdk");
52
+ const ai_provider_service_1 = require("./ai-provider.service");
53
+ const dynamic_provider_factory_1 = require("./providers/dynamic-provider.factory");
54
+ const parallel_processing_service_1 = require("./services/parallel-processing.service");
55
+ const task_management_service_1 = require("./services/task-management.service");
56
+ const result_formatter_service_1 = require("./services/result-formatter.service");
57
+ const tool_call_service_1 = require("./services/tool-call.service");
58
+ const agent_loader_service_1 = require("./services/agent-loader.service");
59
+ const template_service_1 = require("./services/template.service");
60
+ const document_loader_service_1 = require("./services/document-loader.service");
61
+ const init_handler_1 = require("./cli/init.handler");
62
+ const doctor_handler_1 = require("./cli/doctor.handler");
63
+ const help_service_1 = require("./services/help.service");
64
+ const config_service_1 = require("./services/config.service");
65
+ const intelligent_compression_service_1 = require("./services/intelligent-compression.service");
66
+ const config_validator_service_1 = require("./services/config-validator.service");
67
+ const conversation_1 = require("./conversation");
68
+ const auth_service_1 = require("./services/auth.service");
69
+ const bearer_auth_guard_1 = require("./guards/bearer-auth.guard");
70
+ const health_controller_1 = require("./health.controller");
71
+ const mcp_client_service_1 = require("./services/mcp-client.service");
72
+ const remote_agent_service_1 = require("./services/remote-agent.service");
73
+ const provider_bridge_service_1 = require("./services/provider-bridge.service");
74
+ const skill_loader_service_1 = require("./services/skill-loader.service");
75
+ const skill_service_1 = require("./services/skill.service");
76
+ const tracing_service_1 = require("./services/tracing.service");
77
+ const crewx_sdk_2 = require("@sowonai/crewx-sdk");
78
+ const path = __importStar(require("path"));
79
+ const fs_1 = require("fs");
80
+ let AppModule = AppModule_1 = class AppModule {
81
+ static forRoot(options) {
82
+ return {
83
+ module: AppModule_1,
84
+ imports: [
85
+ core_1.DiscoveryModule,
86
+ nestjs_mcp_adapter_1.McpAdapterModule.forRoot({
87
+ servers: {
88
+ [crewx_sdk_1.SERVER_NAME]: {
89
+ version: '0.1.0',
90
+ instructions: 'CrewX server: AI-powered code analysis and project exploration tools.',
91
+ },
92
+ }
93
+ }),
94
+ ],
95
+ providers: [
96
+ {
97
+ provide: 'CLI_OPTIONS',
98
+ useValue: options,
99
+ },
100
+ {
101
+ provide: 'LAYOUT_LOADER',
102
+ useFactory: () => {
103
+ const candidatePaths = [
104
+ path.join(__dirname, '..', '..', '..', 'templates', 'agents'),
105
+ path.join(__dirname, '..', 'templates', 'agents'),
106
+ path.resolve(process.cwd(), 'templates', 'agents'),
107
+ ];
108
+ const templatesPath = candidatePaths.find(candidate => (0, fs_1.existsSync)(candidate));
109
+ if (!templatesPath) {
110
+ throw new Error(`CrewX templates directory not found. Checked paths: ${candidatePaths.join(', ')}`);
111
+ }
112
+ return new crewx_sdk_2.LayoutLoader({
113
+ templatesPath,
114
+ validationMode: 'lenient',
115
+ fallbackLayoutId: 'crewx/default'
116
+ });
117
+ },
118
+ },
119
+ {
120
+ provide: 'PROPS_VALIDATOR',
121
+ useFactory: () => new crewx_sdk_2.PropsValidator(),
122
+ },
123
+ {
124
+ provide: 'LAYOUT_RENDERER',
125
+ useFactory: (propsValidator) => new crewx_sdk_2.LayoutRenderer(propsValidator),
126
+ inject: ['PROPS_VALIDATOR'],
127
+ },
128
+ ai_service_1.AIService,
129
+ workspace_service_1.WorkspaceService,
130
+ crewx_tool_1.CrewXTool,
131
+ ai_provider_service_1.AIProviderService,
132
+ dynamic_provider_factory_1.DynamicProviderFactory,
133
+ parallel_processing_service_1.ParallelProcessingService,
134
+ task_management_service_1.TaskManagementService,
135
+ result_formatter_service_1.ResultFormatterService,
136
+ template_service_1.TemplateService,
137
+ document_loader_service_1.DocumentLoaderService,
138
+ config_validator_service_1.ConfigValidatorService,
139
+ intelligent_compression_service_1.IntelligentCompressionService,
140
+ conversation_1.ConversationProviderFactory,
141
+ tool_call_service_1.ToolCallService,
142
+ agent_loader_service_1.AgentLoaderService,
143
+ skill_loader_service_1.SkillLoaderService,
144
+ skill_service_1.SkillService,
145
+ mcp_client_service_1.McpClientService,
146
+ remote_agent_service_1.RemoteAgentService,
147
+ provider_bridge_service_1.ProviderBridgeService,
148
+ auth_service_1.AuthService,
149
+ bearer_auth_guard_1.BearerAuthGuard,
150
+ init_handler_1.InitHandler,
151
+ doctor_handler_1.DoctorHandler,
152
+ help_service_1.HelpService,
153
+ config_service_1.ConfigService,
154
+ tracing_service_1.TracingService,
155
+ ],
156
+ controllers: [mcp_controller_1.McpController, health_controller_1.HealthController],
157
+ exports: [ai_service_1.AIService, workspace_service_1.WorkspaceService, crewx_tool_1.CrewXTool, ai_provider_service_1.AIProviderService, provider_bridge_service_1.ProviderBridgeService],
158
+ };
159
+ }
160
+ };
161
+ exports.AppModule = AppModule;
162
+ exports.AppModule = AppModule = AppModule_1 = __decorate([
163
+ (0, common_1.Module)({})
164
+ ], AppModule);
165
+ //# sourceMappingURL=app.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { CliOptions } from '../cli-options';
2
+ export declare function handleAgent(app: any, args: CliOptions): Promise<void>;
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleAgent = handleAgent;
4
+ const common_1 = require("@nestjs/common");
5
+ const crewx_tool_1 = require("../crewx.tool");
6
+ const logger = new common_1.Logger('AgentHandler');
7
+ async function handleAgent(app, args) {
8
+ logger.log('Agent command received');
9
+ try {
10
+ const crewXTool = app.get(crewx_tool_1.CrewXTool);
11
+ const raw = Boolean(args.raw);
12
+ let resolvedSubcommand = (args.subcommand || '').toLowerCase();
13
+ const promptIndex = process.argv.indexOf('prompt');
14
+ if (promptIndex !== -1) {
15
+ resolvedSubcommand = 'prompt';
16
+ }
17
+ else if (!resolvedSubcommand && process.argv[3]) {
18
+ resolvedSubcommand = process.argv[3].toLowerCase();
19
+ }
20
+ switch (resolvedSubcommand) {
21
+ case 'ls':
22
+ case 'list':
23
+ case '':
24
+ await handleAgentList(crewXTool, raw);
25
+ break;
26
+ case 'prompt':
27
+ case 'p':
28
+ const agentIdRaw = promptIndex !== -1 ? process.argv[promptIndex + 1] : process.argv[4];
29
+ if (!agentIdRaw) {
30
+ console.error('❌ Missing agent ID. Usage: crewx agent prompt @agent_name');
31
+ process.exit(1);
32
+ }
33
+ const agentId = agentIdRaw.startsWith('@') ? agentIdRaw.slice(1) : agentIdRaw;
34
+ await handleAgentPrompt(crewXTool, agentId, raw);
35
+ break;
36
+ default:
37
+ logger.error(`Unknown agent subcommand: ${resolvedSubcommand}`);
38
+ console.error(`❌ Unknown agent subcommand: ${resolvedSubcommand}`);
39
+ printAgentHelp();
40
+ process.exit(1);
41
+ }
42
+ }
43
+ catch (error) {
44
+ const message = error instanceof Error ? error.message : String(error);
45
+ logger.error(`Agent command failed: ${message}`);
46
+ console.error(`❌ Agent command failed: ${message}`);
47
+ process.exit(1);
48
+ }
49
+ }
50
+ async function handleAgentList(crewXTool, raw) {
51
+ logger.log('Listing configured agents');
52
+ console.log('[CrewX] Loading configured agents...\n');
53
+ try {
54
+ const result = await crewXTool.listAgents();
55
+ if (!result?.success) {
56
+ const errorMessage = result?.error || 'Unknown error';
57
+ logger.error(`Failed to list agents: ${errorMessage}`);
58
+ console.error(`❌ Failed to load agents: ${errorMessage}`);
59
+ process.exit(1);
60
+ }
61
+ const agents = Array.isArray(result.availableAgents) ? result.availableAgents : [];
62
+ const totalCount = result.totalCount ?? agents.length;
63
+ const configPath = process.env.CREWX_CONFIG ?? null;
64
+ if (raw) {
65
+ const payload = {
66
+ totalCount,
67
+ configurationSource: result.configurationSource ?? (configPath ? 'External YAML file' : 'Default hardcoded values'),
68
+ configPath,
69
+ agents,
70
+ };
71
+ console.log(JSON.stringify(payload, null, 2));
72
+ return;
73
+ }
74
+ if (agents.length === 0) {
75
+ console.log('WARNING: No agents configured.');
76
+ if (!configPath) {
77
+ console.log('Set CREWX_CONFIG to point to your crewx.yaml configuration file.');
78
+ }
79
+ return;
80
+ }
81
+ console.log(`Available Agents (${totalCount})\n`);
82
+ agents.forEach((agent, index) => {
83
+ const headerParts = [`@${agent.id}`];
84
+ if (agent.name && agent.name !== agent.id) {
85
+ headerParts.push(agent.name);
86
+ }
87
+ console.log(`${index + 1}. ${headerParts.join(' - ')}`);
88
+ console.log(` Provider: ${formatProvider(agent.provider)}`);
89
+ console.log(` Working Dir: ${agent.workingDirectory}`);
90
+ if (agent.role) {
91
+ console.log(` Role: ${agent.role}`);
92
+ }
93
+ if (agent.team) {
94
+ console.log(` Team: ${agent.team}`);
95
+ }
96
+ if (agent.description) {
97
+ console.log(` Description: ${agent.description}`);
98
+ }
99
+ if (agent.inline?.model) {
100
+ console.log(` Default Model: ${agent.inline.model}`);
101
+ }
102
+ if (agent.specialties && agent.specialties.length > 0) {
103
+ console.log(` Specialties: ${agent.specialties.join(', ')}`);
104
+ }
105
+ if (agent.capabilities && agent.capabilities.length > 0) {
106
+ console.log(` Capabilities: ${agent.capabilities.join(', ')}`);
107
+ }
108
+ if (agent.remote) {
109
+ const remoteDetails = agent.remote.url ? ` ${agent.remote.url}` : '';
110
+ console.log(` Remote: ${agent.remote.type || 'remote'}${remoteDetails}`);
111
+ if (agent.remote.agentId) {
112
+ console.log(` Remote Agent ID: ${agent.remote.agentId}`);
113
+ }
114
+ }
115
+ if (index < agents.length - 1) {
116
+ console.log('');
117
+ }
118
+ });
119
+ console.log('\nConfiguration Source:', result.configurationSource ?? (configPath ? 'External YAML file' : 'Default hardcoded values'));
120
+ if (configPath) {
121
+ console.log(`Config Path: ${configPath}`);
122
+ }
123
+ else {
124
+ console.log('Tip: Set CREWX_CONFIG to point to your crewx.yaml file to customize agents.');
125
+ }
126
+ }
127
+ catch (error) {
128
+ const message = error instanceof Error ? error.message : String(error);
129
+ logger.error(`Failed to list agents: ${message}`);
130
+ console.error(`❌ Failed to list agents: ${message}`);
131
+ process.exit(1);
132
+ }
133
+ }
134
+ async function handleAgentPrompt(crewXTool, agentId, raw) {
135
+ if (!agentId) {
136
+ console.error('❌ Error: Agent ID is required for prompt command.');
137
+ console.log('Usage: crewx agent prompt <agentId>');
138
+ process.exit(1);
139
+ }
140
+ logger.log(`Inspecting prompt for agent: ${agentId}`);
141
+ try {
142
+ const renderedPrompt = await crewXTool.getRenderedAgentPrompt(agentId);
143
+ if (raw) {
144
+ console.log(renderedPrompt);
145
+ }
146
+ else {
147
+ console.log(`\n🤖 **Rendered Prompt for Agent: ${agentId}**\n`);
148
+ console.log('--- BEGIN PROMPT ---');
149
+ console.log(renderedPrompt);
150
+ console.log('--- END PROMPT ---');
151
+ }
152
+ }
153
+ catch (error) {
154
+ const message = error instanceof Error ? error.message : String(error);
155
+ logger.error(`Failed to get agent prompt: ${message}`);
156
+ console.error(`❌ Failed to get agent prompt: ${message}`);
157
+ process.exit(1);
158
+ }
159
+ }
160
+ function formatProvider(provider) {
161
+ if (Array.isArray(provider)) {
162
+ return provider.join(', ');
163
+ }
164
+ return provider;
165
+ }
166
+ function printAgentHelp() {
167
+ console.log(`
168
+ CrewX Agent Management
169
+
170
+ Usage:
171
+ crewx agent # List configured agents (default)
172
+ crewx agent ls # List configured agents
173
+ crewx agent list # Alias for ls
174
+ crewx agent prompt <id> # Inspect rendered agent prompt
175
+
176
+ Examples:
177
+ crewx agent
178
+ crewx agent ls
179
+ CREWX_CONFIG=./crewx.yaml crewx agent list
180
+
181
+ Tips:
182
+ - Use --raw to print JSON output suitable for scripting.
183
+ - Set CREWX_CONFIG to point to your custom crewx.yaml file.
184
+ `);
185
+ }
186
+ //# sourceMappingURL=agent.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.handler.js","sourceRoot":"","sources":["../../src/cli/agent.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const BUILTIN_COMMANDS: Set<string>;
2
+ export declare function wrapWithTracer(builtinName: string, main: (args?: string[]) => Promise<void>, args: string[]): Promise<void>;
3
+ export declare function handleBuiltin(builtinName: string, args: string[]): Promise<void>;
@@ -0,0 +1,110 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BUILTIN_COMMANDS = void 0;
37
+ exports.wrapWithTracer = wrapWithTracer;
38
+ exports.handleBuiltin = handleBuiltin;
39
+ const BUILTIN_MAP = {
40
+ memory: () => Promise.resolve().then(() => __importStar(require('@crewx/memory/cli'))),
41
+ search: () => Promise.resolve().then(() => __importStar(require('@crewx/search/cli'))),
42
+ doc: () => Promise.resolve().then(() => __importStar(require('@crewx/doc/cli'))),
43
+ wbs: () => Promise.resolve().then(() => __importStar(require('@crewx/wbs/cli'))),
44
+ cron: () => Promise.resolve().then(() => __importStar(require('@crewx/cron/cli'))),
45
+ workflow: () => Promise.resolve().then(() => __importStar(require('@crewx/workflow/cli'))),
46
+ };
47
+ exports.BUILTIN_COMMANDS = new Set(Object.keys(BUILTIN_MAP));
48
+ async function loadTracer() {
49
+ try {
50
+ return await Promise.resolve().then(() => __importStar(require('@crewx/shared/skill-tracer')));
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ async function wrapWithTracer(builtinName, main, args) {
57
+ let tracer = null;
58
+ try {
59
+ tracer = await loadTracer();
60
+ }
61
+ catch {
62
+ }
63
+ if (tracer) {
64
+ let mainError = null;
65
+ let mainCompleted = false;
66
+ try {
67
+ await tracer.run(`crewx/${builtinName}`, async () => {
68
+ try {
69
+ await main(args);
70
+ mainCompleted = true;
71
+ }
72
+ catch (err) {
73
+ mainError = err;
74
+ throw err;
75
+ }
76
+ });
77
+ return;
78
+ }
79
+ catch (err) {
80
+ if (mainError) {
81
+ throw mainError;
82
+ }
83
+ if (mainCompleted) {
84
+ return;
85
+ }
86
+ }
87
+ }
88
+ await main(args);
89
+ }
90
+ async function handleBuiltin(builtinName, args) {
91
+ const loader = BUILTIN_MAP[builtinName];
92
+ if (!loader) {
93
+ console.error(`Unknown built-in tool: ${builtinName}`);
94
+ process.exit(1);
95
+ }
96
+ try {
97
+ const mod = await loader();
98
+ await wrapWithTracer(builtinName, mod.main.bind(mod), args);
99
+ }
100
+ catch (err) {
101
+ if (err.code === 'MODULE_NOT_FOUND' || err.code === 'ERR_MODULE_NOT_FOUND') {
102
+ console.error(`\n Built-in tool '${builtinName}' is not installed.\n`);
103
+ console.error(` Install it with:\n`);
104
+ console.error(` npm install @crewx/${builtinName}\n`);
105
+ process.exit(1);
106
+ }
107
+ throw err;
108
+ }
109
+ }
110
+ //# sourceMappingURL=builtin.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin.handler.js","sourceRoot":"","sources":["../../src/cli/builtin.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { CrewXTool } from '../crewx.tool';
2
+ import { ConversationProviderFactory } from '../conversation';
3
+ import { CliOptions } from '../cli-options';
4
+ export declare function handleChat(app: any, args: CliOptions): Promise<void>;
5
+ export declare class ChatHandler {
6
+ private readonly crewXTool;
7
+ private readonly providerFactory;
8
+ private readonly logger;
9
+ private conversationProvider;
10
+ private currentThreadId?;
11
+ private cliOptions;
12
+ constructor(crewXTool: CrewXTool, providerFactory: ConversationProviderFactory, cliOptions: CliOptions);
13
+ handleChatCommand(options: any): Promise<void>;
14
+ private handleSingleMessage;
15
+ private startInteractiveChat;
16
+ private listThreads;
17
+ private showHistory;
18
+ private deleteThread;
19
+ private cleanupThreads;
20
+ }