@crewx/cli 0.8.0-rc.66 โ 0.8.0-rc.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/crewx +2 -0
- package/dist/bootstrap/crewx-cli.d.ts +11 -0
- package/dist/bootstrap/crewx-cli.js +31 -0
- package/dist/builtin.d.ts +15 -0
- package/dist/{cli/builtin.handler.js โ builtin.js} +21 -7
- package/dist/commands/agent.d.ts +12 -0
- package/dist/commands/agent.js +246 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +190 -0
- package/dist/commands/execute.d.ts +21 -0
- package/dist/commands/execute.js +117 -0
- package/dist/commands/hook/install.d.ts +21 -0
- package/dist/commands/hook/install.js +175 -0
- package/dist/commands/hook/paths.d.ts +19 -0
- package/dist/commands/hook/paths.js +94 -0
- package/dist/commands/hook/status.d.ts +7 -0
- package/dist/commands/hook/status.js +86 -0
- package/dist/commands/hook/uninstall.d.ts +8 -0
- package/dist/commands/hook/uninstall.js +71 -0
- package/dist/commands/hook-dispatch.d.ts +15 -0
- package/dist/commands/hook-dispatch.js +180 -0
- package/dist/commands/init.d.ts +24 -0
- package/dist/commands/init.js +133 -0
- package/dist/commands/kill.d.ts +12 -0
- package/dist/commands/kill.js +49 -0
- package/dist/commands/log.d.ts +13 -0
- package/dist/commands/log.js +97 -0
- package/dist/commands/parse-agent-message.d.ts +31 -0
- package/dist/commands/parse-agent-message.js +52 -0
- package/dist/commands/parse-common-flags.d.ts +36 -0
- package/dist/commands/parse-common-flags.js +105 -0
- package/dist/commands/ps.d.ts +12 -0
- package/dist/commands/ps.js +71 -0
- package/dist/commands/query.d.ts +21 -0
- package/dist/commands/query.js +117 -0
- package/dist/commands/result.d.ts +13 -0
- package/dist/commands/result.js +73 -0
- package/dist/commands/slack.d.ts +12 -0
- package/dist/commands/slack.js +559 -0
- package/dist/commands/task-db.d.ts +33 -0
- package/dist/commands/task-db.js +107 -0
- package/dist/examples/deny-secrets-plugin.d.ts +22 -0
- package/dist/examples/deny-secrets-plugin.js +40 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -0
- package/dist/logging.d.ts +21 -0
- package/dist/logging.js +86 -0
- package/dist/main.d.ts +10 -0
- package/dist/main.js +246 -256
- package/dist/plugins/examples/echo-hook.d.ts +24 -0
- package/dist/plugins/examples/echo-hook.js +60 -0
- package/dist/plugins/examples/verify-echo-hook.d.ts +8 -0
- package/dist/plugins/examples/verify-echo-hook.js +47 -0
- package/dist/plugins/sqlite-tracing.d.ts +13 -0
- package/dist/plugins/sqlite-tracing.js +20 -0
- package/dist/register-builtin-tools.d.ts +5 -0
- package/dist/register-builtin-tools.js +9 -0
- package/dist/slack/file-download.d.ts +17 -0
- package/dist/slack/file-download.js +134 -0
- package/dist/slack/markdown.d.ts +5 -0
- package/dist/slack/markdown.js +33 -0
- package/dist/utils/env-defaults.d.ts +5 -0
- package/dist/utils/env-defaults.js +10 -0
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.js +28 -0
- package/package.json +32 -115
- package/README.md +0 -663
- package/dist/ai-provider.service.d.ts +0 -36
- package/dist/ai-provider.service.js +0 -315
- package/dist/ai-provider.service.js.map +0 -1
- package/dist/ai.service.d.ts +0 -17
- package/dist/ai.service.js +0 -51
- package/dist/ai.service.js.map +0 -1
- package/dist/app.module.d.ts +0 -5
- package/dist/app.module.js +0 -165
- package/dist/app.module.js.map +0 -1
- package/dist/cli/agent.handler.d.ts +0 -2
- package/dist/cli/agent.handler.js +0 -186
- package/dist/cli/agent.handler.js.map +0 -1
- package/dist/cli/builtin.handler.d.ts +0 -3
- package/dist/cli/builtin.handler.js.map +0 -1
- package/dist/cli/chat.handler.d.ts +0 -20
- package/dist/cli/chat.handler.js +0 -446
- package/dist/cli/chat.handler.js.map +0 -1
- package/dist/cli/cli.handler.d.ts +0 -4
- package/dist/cli/cli.handler.js +0 -119
- package/dist/cli/cli.handler.js.map +0 -1
- package/dist/cli/doctor.handler.d.ts +0 -38
- package/dist/cli/doctor.handler.js +0 -495
- package/dist/cli/doctor.handler.js.map +0 -1
- package/dist/cli/execute.handler.d.ts +0 -2
- package/dist/cli/execute.handler.js +0 -376
- package/dist/cli/execute.handler.js.map +0 -1
- package/dist/cli/help.handler.d.ts +0 -2
- package/dist/cli/help.handler.js +0 -10
- package/dist/cli/help.handler.js.map +0 -1
- package/dist/cli/init.handler.d.ts +0 -26
- package/dist/cli/init.handler.js +0 -450
- package/dist/cli/init.handler.js.map +0 -1
- package/dist/cli/log.handler.d.ts +0 -2
- package/dist/cli/log.handler.js +0 -69
- package/dist/cli/log.handler.js.map +0 -1
- package/dist/cli/mcp.handler.d.ts +0 -3
- package/dist/cli/mcp.handler.js +0 -121
- package/dist/cli/mcp.handler.js.map +0 -1
- package/dist/cli/query.handler.d.ts +0 -2
- package/dist/cli/query.handler.js +0 -392
- package/dist/cli/query.handler.js.map +0 -1
- package/dist/cli/skill.handler.d.ts +0 -2
- package/dist/cli/skill.handler.js +0 -252
- package/dist/cli/skill.handler.js.map +0 -1
- package/dist/cli/slack-files.handler.d.ts +0 -2
- package/dist/cli/slack-files.handler.js +0 -291
- package/dist/cli/slack-files.handler.js.map +0 -1
- package/dist/cli/template.handler.d.ts +0 -2
- package/dist/cli/template.handler.js +0 -188
- package/dist/cli/template.handler.js.map +0 -1
- package/dist/cli/templates.handler.d.ts +0 -2
- package/dist/cli/templates.handler.js +0 -100
- package/dist/cli/templates.handler.js.map +0 -1
- package/dist/cli-options.d.ts +0 -40
- package/dist/cli-options.js +0 -371
- package/dist/cli-options.js.map +0 -1
- package/dist/config/timeout.config.d.ts +0 -14
- package/dist/config/timeout.config.js +0 -34
- package/dist/config/timeout.config.js.map +0 -1
- package/dist/conversation/base-conversation-history.provider.d.ts +0 -12
- package/dist/conversation/base-conversation-history.provider.js +0 -45
- package/dist/conversation/base-conversation-history.provider.js.map +0 -1
- package/dist/conversation/cli-box-reader.adapter.d.ts +0 -6
- package/dist/conversation/cli-box-reader.adapter.js +0 -10
- package/dist/conversation/cli-box-reader.adapter.js.map +0 -1
- package/dist/conversation/cli-conversation-history.provider.d.ts +0 -16
- package/dist/conversation/cli-conversation-history.provider.js +0 -112
- package/dist/conversation/cli-conversation-history.provider.js.map +0 -1
- package/dist/conversation/cli-task-reader.adapter.d.ts +0 -6
- package/dist/conversation/cli-task-reader.adapter.js +0 -25
- package/dist/conversation/cli-task-reader.adapter.js.map +0 -1
- package/dist/conversation/conversation-provider.factory.d.ts +0 -10
- package/dist/conversation/conversation-provider.factory.js +0 -50
- package/dist/conversation/conversation-provider.factory.js.map +0 -1
- package/dist/conversation/index.d.ts +0 -8
- package/dist/conversation/index.js +0 -29
- package/dist/conversation/index.js.map +0 -1
- package/dist/conversation/slack-conversation-history.provider.d.ts +0 -29
- package/dist/conversation/slack-conversation-history.provider.js +0 -302
- package/dist/conversation/slack-conversation-history.provider.js.map +0 -1
- package/dist/crewx.tool.d.ts +0 -360
- package/dist/crewx.tool.js +0 -2531
- package/dist/crewx.tool.js.map +0 -1
- package/dist/crewx.tool.spec.d.ts +0 -1
- package/dist/crewx.tool.spec.js +0 -222
- package/dist/crewx.tool.spec.js.map +0 -1
- package/dist/guards/bearer-auth.guard.d.ts +0 -7
- package/dist/guards/bearer-auth.guard.js +0 -44
- package/dist/guards/bearer-auth.guard.js.map +0 -1
- package/dist/health.controller.d.ts +0 -6
- package/dist/health.controller.js +0 -32
- package/dist/health.controller.js.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/mcp.controller.d.ts +0 -8
- package/dist/mcp.controller.js +0 -62
- package/dist/mcp.controller.js.map +0 -1
- package/dist/package.json +0 -3
- package/dist/providers/dynamic-provider.factory.d.ts +0 -17
- package/dist/providers/dynamic-provider.factory.js +0 -138
- package/dist/providers/dynamic-provider.factory.js.map +0 -1
- package/dist/providers/logger.adapter.d.ts +0 -7
- package/dist/providers/logger.adapter.js +0 -107
- package/dist/providers/logger.adapter.js.map +0 -1
- package/dist/services/agent-loader.service.d.ts +0 -35
- package/dist/services/agent-loader.service.js +0 -623
- package/dist/services/agent-loader.service.js.map +0 -1
- package/dist/services/auth.service.d.ts +0 -9
- package/dist/services/auth.service.js +0 -47
- package/dist/services/auth.service.js.map +0 -1
- package/dist/services/config-validator.service.d.ts +0 -29
- package/dist/services/config-validator.service.js +0 -483
- package/dist/services/config-validator.service.js.map +0 -1
- package/dist/services/config.service.d.ts +0 -45
- package/dist/services/config.service.js +0 -352
- package/dist/services/config.service.js.map +0 -1
- package/dist/services/document-loader.service.d.ts +0 -26
- package/dist/services/document-loader.service.js +0 -186
- package/dist/services/document-loader.service.js.map +0 -1
- package/dist/services/help.service.d.ts +0 -5
- package/dist/services/help.service.js +0 -139
- package/dist/services/help.service.js.map +0 -1
- package/dist/services/intelligent-compression.service.d.ts +0 -20
- package/dist/services/intelligent-compression.service.js +0 -179
- package/dist/services/intelligent-compression.service.js.map +0 -1
- package/dist/services/mcp-client.service.d.ts +0 -26
- package/dist/services/mcp-client.service.js +0 -81
- package/dist/services/mcp-client.service.js.map +0 -1
- package/dist/services/parallel-processing.service.d.ts +0 -108
- package/dist/services/parallel-processing.service.js +0 -333
- package/dist/services/parallel-processing.service.js.map +0 -1
- package/dist/services/provider-bridge.service.d.ts +0 -35
- package/dist/services/provider-bridge.service.js +0 -224
- package/dist/services/provider-bridge.service.js.map +0 -1
- package/dist/services/remote-agent.service.d.ts +0 -50
- package/dist/services/remote-agent.service.js +0 -171
- package/dist/services/remote-agent.service.js.map +0 -1
- package/dist/services/result-formatter.service.d.ts +0 -27
- package/dist/services/result-formatter.service.js +0 -126
- package/dist/services/result-formatter.service.js.map +0 -1
- package/dist/services/skill-loader.service.d.ts +0 -15
- package/dist/services/skill-loader.service.js +0 -278
- package/dist/services/skill-loader.service.js.map +0 -1
- package/dist/services/skill.service.d.ts +0 -69
- package/dist/services/skill.service.js +0 -779
- package/dist/services/skill.service.js.map +0 -1
- package/dist/services/skill.service.spec.d.ts +0 -1
- package/dist/services/skill.service.spec.js +0 -168
- package/dist/services/skill.service.spec.js.map +0 -1
- package/dist/services/task-management.service.d.ts +0 -71
- package/dist/services/task-management.service.js +0 -324
- package/dist/services/task-management.service.js.map +0 -1
- package/dist/services/template.service.d.ts +0 -61
- package/dist/services/template.service.js +0 -416
- package/dist/services/template.service.js.map +0 -1
- package/dist/services/tool-call.service.d.ts +0 -16
- package/dist/services/tool-call.service.js +0 -302
- package/dist/services/tool-call.service.js.map +0 -1
- package/dist/services/tracing.service.d.ts +0 -197
- package/dist/services/tracing.service.js +0 -1267
- package/dist/services/tracing.service.js.map +0 -1
- package/dist/slack/formatters/message.formatter.d.ts +0 -43
- package/dist/slack/formatters/message.formatter.js +0 -505
- package/dist/slack/formatters/message.formatter.js.map +0 -1
- package/dist/slack/services/slack-file-download.service.d.ts +0 -58
- package/dist/slack/services/slack-file-download.service.js +0 -558
- package/dist/slack/services/slack-file-download.service.js.map +0 -1
- package/dist/slack/slack-bot.d.ts +0 -33
- package/dist/slack/slack-bot.js +0 -568
- package/dist/slack/slack-bot.js.map +0 -1
- package/dist/stderr.logger.d.ts +0 -8
- package/dist/stderr.logger.js +0 -26
- package/dist/stderr.logger.js.map +0 -1
- package/dist/types/usage.types.d.ts +0 -107
- package/dist/types/usage.types.js +0 -3
- package/dist/types/usage.types.js.map +0 -1
- package/dist/utils/config-utils.d.ts +0 -15
- package/dist/utils/config-utils.js +0 -69
- package/dist/utils/config-utils.js.map +0 -1
- package/dist/utils/extract-text.d.ts +0 -1
- package/dist/utils/extract-text.js +0 -15
- package/dist/utils/extract-text.js.map +0 -1
- package/dist/utils/mcp-installer.d.ts +0 -20
- package/dist/utils/mcp-installer.js +0 -199
- package/dist/utils/mcp-installer.js.map +0 -1
- package/dist/utils/project-hash.d.ts +0 -6
- package/dist/utils/project-hash.js +0 -70
- package/dist/utils/project-hash.js.map +0 -1
- package/dist/utils/simple-security.d.ts +0 -3
- package/dist/utils/simple-security.js +0 -20
- package/dist/utils/simple-security.js.map +0 -1
- package/dist/utils/stdin-utils.d.ts +0 -6
- package/dist/utils/stdin-utils.js +0 -109
- package/dist/utils/stdin-utils.js.map +0 -1
- package/dist/utils/template-processor.d.ts +0 -27
- package/dist/utils/template-processor.js +0 -395
- package/dist/utils/template-processor.js.map +0 -1
- package/dist/utils/terminal-message-formatter.d.ts +0 -23
- package/dist/utils/terminal-message-formatter.js +0 -136
- package/dist/utils/terminal-message-formatter.js.map +0 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -17
- package/dist/version.js.map +0 -1
- package/dist/workspace.service.d.ts +0 -44
- package/dist/workspace.service.js +0 -299
- package/dist/workspace.service.js.map +0 -1
- package/scripts/backfill-tokens.js +0 -218
- package/scripts/postbuild-cli.mjs +0 -88
- package/scripts/postinstall-cli.mjs +0 -30
- package/templates/agents/default.yaml +0 -490
- package/templates/agents/minimal.yaml +0 -16
- package/templates/documents/conversation-history-default.hbs +0 -17
- package/templates/documents/crewx-manual.md +0 -2278
- package/templates/documents/crewx-quick-guide.md +0 -147
- package/templates/versions.json +0 -19
|
@@ -1,186 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.handler.js","sourceRoot":"","sources":["../../src/cli/agent.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
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>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builtin.handler.js","sourceRoot":"","sources":["../../src/cli/builtin.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
-
}
|
package/dist/cli/chat.handler.js
DELETED
|
@@ -1,446 +0,0 @@
|
|
|
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.ChatHandler = void 0;
|
|
37
|
-
exports.handleChat = handleChat;
|
|
38
|
-
const common_1 = require("@nestjs/common");
|
|
39
|
-
const crewx_tool_1 = require("../crewx.tool");
|
|
40
|
-
const conversation_1 = require("../conversation");
|
|
41
|
-
const readline = __importStar(require("readline"));
|
|
42
|
-
const os = __importStar(require("os"));
|
|
43
|
-
const terminal_message_formatter_1 = require("../utils/terminal-message-formatter");
|
|
44
|
-
async function handleChat(app, args) {
|
|
45
|
-
const logger = new common_1.Logger('ChatHandler');
|
|
46
|
-
try {
|
|
47
|
-
const crewXTool = app.get(crewx_tool_1.CrewXTool);
|
|
48
|
-
const providerFactory = app.get(conversation_1.ConversationProviderFactory);
|
|
49
|
-
const chatHandler = new ChatHandler(crewXTool, providerFactory, args);
|
|
50
|
-
const options = {};
|
|
51
|
-
if (args.provider) {
|
|
52
|
-
options.provider = args.provider;
|
|
53
|
-
}
|
|
54
|
-
const argv = process.argv;
|
|
55
|
-
let message = '';
|
|
56
|
-
for (let i = 0; i < argv.length; i++) {
|
|
57
|
-
if (argv[i] === '--thread' || argv[i] === '-t') {
|
|
58
|
-
options.thread = argv[i + 1];
|
|
59
|
-
}
|
|
60
|
-
else if (argv[i] === '--new' || argv[i] === '-n') {
|
|
61
|
-
options.new = true;
|
|
62
|
-
}
|
|
63
|
-
else if (argv[i] === '--list' || argv[i] === '-l') {
|
|
64
|
-
options.list = true;
|
|
65
|
-
}
|
|
66
|
-
else if (argv[i] === '--delete' || argv[i] === '-d') {
|
|
67
|
-
options.delete = argv[i + 1];
|
|
68
|
-
}
|
|
69
|
-
else if (argv[i] === '--cleanup') {
|
|
70
|
-
options.cleanup = argv[i + 1] || '30';
|
|
71
|
-
}
|
|
72
|
-
else if (argv[i] === '--message' || argv[i] === '-m') {
|
|
73
|
-
message = argv[i + 1] || '';
|
|
74
|
-
}
|
|
75
|
-
else if (argv[i] === '--provider') {
|
|
76
|
-
options.provider = argv[i + 1];
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (message) {
|
|
80
|
-
options.message = message;
|
|
81
|
-
}
|
|
82
|
-
await chatHandler.handleChatCommand(options);
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
logger.error(`Chat command failed: ${error.message}`);
|
|
86
|
-
console.error(`โ Error: ${error.message}`);
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
class ChatHandler {
|
|
91
|
-
constructor(crewXTool, providerFactory, cliOptions) {
|
|
92
|
-
this.crewXTool = crewXTool;
|
|
93
|
-
this.providerFactory = providerFactory;
|
|
94
|
-
this.logger = new common_1.Logger(ChatHandler.name);
|
|
95
|
-
this.conversationProvider = this.providerFactory.getProvider('cli');
|
|
96
|
-
this.cliOptions = cliOptions;
|
|
97
|
-
}
|
|
98
|
-
async handleChatCommand(options) {
|
|
99
|
-
try {
|
|
100
|
-
await this.conversationProvider.initialize();
|
|
101
|
-
if (options.list) {
|
|
102
|
-
await this.listThreads();
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
if (options.delete) {
|
|
106
|
-
await this.deleteThread(options.delete);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (options.cleanup) {
|
|
110
|
-
await this.cleanupThreads(parseInt(options.cleanup, 10));
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (options.thread) {
|
|
114
|
-
const threadId = options.thread;
|
|
115
|
-
const exists = await this.conversationProvider.hasHistory(threadId);
|
|
116
|
-
if (!exists) {
|
|
117
|
-
console.log(`โ ๏ธ Thread '${threadId}' not found. Creating new thread.`);
|
|
118
|
-
this.currentThreadId = await this.conversationProvider.createThread(threadId);
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
this.currentThreadId = threadId;
|
|
122
|
-
console.log(`๐ Continuing conversation: ${this.currentThreadId}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
this.currentThreadId = await this.conversationProvider.createThread();
|
|
127
|
-
console.log(`โจ New conversation started: ${this.currentThreadId}`);
|
|
128
|
-
}
|
|
129
|
-
if (options.message) {
|
|
130
|
-
await this.handleSingleMessage(options.message);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
await this.startInteractiveChat();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
this.logger.error(`Chat error: ${error.message}`);
|
|
138
|
-
console.error(`โ Error: ${error.message}`);
|
|
139
|
-
process.exit(1);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
async handleSingleMessage(message) {
|
|
143
|
-
try {
|
|
144
|
-
if (!this.currentThreadId) {
|
|
145
|
-
console.error('โ No active conversation thread');
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
const mentionRegex = /@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?/g;
|
|
149
|
-
const matches = [...message.matchAll(mentionRegex)];
|
|
150
|
-
const query = message.replace(/@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?/g, '').trim();
|
|
151
|
-
if (!query) {
|
|
152
|
-
console.error('โ No message content after @mentions');
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
const parsedQueries = [];
|
|
156
|
-
if (matches.length > 0) {
|
|
157
|
-
for (const match of matches) {
|
|
158
|
-
const agentId = match[1];
|
|
159
|
-
const model = match[2];
|
|
160
|
-
if (agentId) {
|
|
161
|
-
parsedQueries.push({ agentId, query, model });
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
parsedQueries.push({ agentId: 'mcp_test_agent', query });
|
|
167
|
-
}
|
|
168
|
-
await this.conversationProvider.addMessage(this.currentThreadId, os.userInfo().username, message, false);
|
|
169
|
-
const thread = await this.conversationProvider.fetchHistory(this.currentThreadId, {
|
|
170
|
-
limit: 20,
|
|
171
|
-
maxContextLength: 4000,
|
|
172
|
-
});
|
|
173
|
-
const conversationMessages = thread.messages.map((msg) => ({
|
|
174
|
-
text: msg.text,
|
|
175
|
-
isAssistant: msg.isAssistant,
|
|
176
|
-
metadata: msg.metadata,
|
|
177
|
-
}));
|
|
178
|
-
const historyContext = await this.conversationProvider.formatForAI(thread, {
|
|
179
|
-
excludeCurrent: true,
|
|
180
|
-
});
|
|
181
|
-
const context = historyContext
|
|
182
|
-
? `CLI chat session\nThread: ${this.currentThreadId}\nUser: ${os.userInfo().username}\n\n${historyContext}\n\nCurrent question: ${query}`
|
|
183
|
-
: `CLI chat session\nThread: ${this.currentThreadId}\nUser: ${os.userInfo().username}\n\nCurrent question: ${query}`;
|
|
184
|
-
console.log('๐ค CrewX: ');
|
|
185
|
-
if (parsedQueries.length === 1) {
|
|
186
|
-
const firstQuery = parsedQueries[0];
|
|
187
|
-
if (!firstQuery) {
|
|
188
|
-
console.error('โ No valid queries found');
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
const { agentId, model } = firstQuery;
|
|
192
|
-
const result = await this.crewXTool.queryAgent({
|
|
193
|
-
agentId,
|
|
194
|
-
query,
|
|
195
|
-
context,
|
|
196
|
-
model,
|
|
197
|
-
messages: conversationMessages,
|
|
198
|
-
platform: 'cli',
|
|
199
|
-
provider: this.cliOptions.provider
|
|
200
|
-
});
|
|
201
|
-
const responseText = result.content && result.content[0]
|
|
202
|
-
? result.content[0].text
|
|
203
|
-
: 'No response';
|
|
204
|
-
if (result.success) {
|
|
205
|
-
console.log(responseText);
|
|
206
|
-
await this.conversationProvider.addMessage(this.currentThreadId, 'assistant', responseText, true, agentId);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
console.error(`โ Error: ${result.error || 'Query failed'}`);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
console.log(`๐ Querying ${parsedQueries.length} agents in parallel...\n`);
|
|
214
|
-
const queries = parsedQueries.map(pq => ({
|
|
215
|
-
agentId: pq.agentId,
|
|
216
|
-
query: pq.query,
|
|
217
|
-
context,
|
|
218
|
-
model: pq.model,
|
|
219
|
-
messages: conversationMessages,
|
|
220
|
-
platform: 'cli',
|
|
221
|
-
provider: this.cliOptions.provider
|
|
222
|
-
}));
|
|
223
|
-
const result = await this.crewXTool.queryAgentParallel({ queries });
|
|
224
|
-
if (result.results && Array.isArray(result.results)) {
|
|
225
|
-
let hasAnySuccess = false;
|
|
226
|
-
for (const agentResult of result.results) {
|
|
227
|
-
console.log(`\n${'โ'.repeat(60)}`);
|
|
228
|
-
console.log(`Agent: @${agentResult.agentId} ${agentResult.success ? 'โ
' : 'โ'}`);
|
|
229
|
-
console.log('โ'.repeat(60));
|
|
230
|
-
if (agentResult.success) {
|
|
231
|
-
hasAnySuccess = true;
|
|
232
|
-
console.log(agentResult.response || 'No response');
|
|
233
|
-
await this.conversationProvider.addMessage(this.currentThreadId, 'assistant', agentResult.response || 'No response', true, agentResult.agentId);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
console.error(`Error: ${agentResult.error || 'Unknown error'}`);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
if (!hasAnySuccess) {
|
|
240
|
-
console.error('\nโ All agents failed');
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
console.log(`\n๐พ Conversation saved to thread: ${this.currentThreadId}`);
|
|
245
|
-
}
|
|
246
|
-
catch (error) {
|
|
247
|
-
this.logger.error(`Error processing single message: ${error.message}`);
|
|
248
|
-
console.error(`โ Error: ${error.message}`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
async startInteractiveChat() {
|
|
252
|
-
return new Promise((resolve) => {
|
|
253
|
-
console.log('\n๐ฌ Interactive Chat Mode');
|
|
254
|
-
console.log('Type your message and press Enter. Type "exit" or "quit" to end.');
|
|
255
|
-
console.log('๐ก Tip: Use @agent_name to query specific agents (e.g., @claude What is TypeScript?)\n');
|
|
256
|
-
const rl = readline.createInterface({
|
|
257
|
-
input: process.stdin,
|
|
258
|
-
output: process.stdout,
|
|
259
|
-
prompt: '๐ง You: ',
|
|
260
|
-
});
|
|
261
|
-
rl.prompt();
|
|
262
|
-
rl.on('line', async (input) => {
|
|
263
|
-
const message = input.trim();
|
|
264
|
-
if (message.toLowerCase() === 'exit' || message.toLowerCase() === 'quit') {
|
|
265
|
-
console.log(`\n๐ Conversation saved as: ${this.currentThreadId}`);
|
|
266
|
-
rl.close();
|
|
267
|
-
resolve();
|
|
268
|
-
process.exit(0);
|
|
269
|
-
}
|
|
270
|
-
if (!message) {
|
|
271
|
-
rl.prompt();
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
try {
|
|
275
|
-
if (!this.currentThreadId) {
|
|
276
|
-
console.error('โ No active conversation thread\n');
|
|
277
|
-
rl.prompt();
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
const mentionRegex = /@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?/g;
|
|
281
|
-
const matches = [...message.matchAll(mentionRegex)];
|
|
282
|
-
const query = message.replace(/@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?/g, '').trim();
|
|
283
|
-
if (!query) {
|
|
284
|
-
console.error('โ No message content after @mentions\n');
|
|
285
|
-
rl.prompt();
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
const parsedQueries = [];
|
|
289
|
-
if (matches.length > 0) {
|
|
290
|
-
for (const match of matches) {
|
|
291
|
-
const agentId = match[1];
|
|
292
|
-
const model = match[2];
|
|
293
|
-
if (agentId) {
|
|
294
|
-
parsedQueries.push({ agentId, query, model });
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
parsedQueries.push({ agentId: 'mcp_test_agent', query });
|
|
300
|
-
}
|
|
301
|
-
await this.conversationProvider.addMessage(this.currentThreadId, os.userInfo().username, message, false);
|
|
302
|
-
const thread = await this.conversationProvider.fetchHistory(this.currentThreadId, {
|
|
303
|
-
limit: 20,
|
|
304
|
-
maxContextLength: 4000,
|
|
305
|
-
});
|
|
306
|
-
const conversationMessages = thread.messages.map((msg) => ({
|
|
307
|
-
text: msg.text,
|
|
308
|
-
isAssistant: msg.isAssistant,
|
|
309
|
-
metadata: msg.metadata,
|
|
310
|
-
}));
|
|
311
|
-
const historyContext = this.conversationProvider.formatForAI(thread, {
|
|
312
|
-
excludeCurrent: true,
|
|
313
|
-
});
|
|
314
|
-
const context = historyContext
|
|
315
|
-
? `CLI chat session\nThread: ${this.currentThreadId}\nUser: ${os.userInfo().username}\n\n${historyContext}\n\nCurrent question: ${query}`
|
|
316
|
-
: `CLI chat session\nThread: ${this.currentThreadId}\nUser: ${os.userInfo().username}\n\nCurrent question: ${query}`;
|
|
317
|
-
console.log('๐ค CrewX: ');
|
|
318
|
-
if (parsedQueries.length === 1) {
|
|
319
|
-
const firstQuery = parsedQueries[0];
|
|
320
|
-
if (!firstQuery) {
|
|
321
|
-
console.error('โ No valid queries found\n');
|
|
322
|
-
rl.prompt();
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
const { agentId, model } = firstQuery;
|
|
326
|
-
const result = await this.crewXTool.queryAgent({
|
|
327
|
-
agentId,
|
|
328
|
-
query,
|
|
329
|
-
context,
|
|
330
|
-
model,
|
|
331
|
-
messages: conversationMessages,
|
|
332
|
-
platform: 'cli',
|
|
333
|
-
provider: this.cliOptions.provider
|
|
334
|
-
});
|
|
335
|
-
const responseText = result.content && result.content[0]
|
|
336
|
-
? result.content[0].text
|
|
337
|
-
: 'No response';
|
|
338
|
-
if (result.success) {
|
|
339
|
-
console.log(responseText);
|
|
340
|
-
console.log();
|
|
341
|
-
await this.conversationProvider.addMessage(this.currentThreadId, 'assistant', responseText, true, agentId);
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
console.error(`โ Error: ${result.error || 'Query failed'}\n`);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
else {
|
|
348
|
-
console.log(`๐ Querying ${parsedQueries.length} agents in parallel...\n`);
|
|
349
|
-
const queries = parsedQueries.map(pq => ({
|
|
350
|
-
agentId: pq.agentId,
|
|
351
|
-
query: pq.query,
|
|
352
|
-
context,
|
|
353
|
-
model: pq.model,
|
|
354
|
-
messages: conversationMessages,
|
|
355
|
-
platform: 'cli',
|
|
356
|
-
provider: this.cliOptions.provider
|
|
357
|
-
}));
|
|
358
|
-
const result = await this.crewXTool.queryAgentParallel({ queries });
|
|
359
|
-
if (result.results && Array.isArray(result.results)) {
|
|
360
|
-
let hasAnySuccess = false;
|
|
361
|
-
for (const agentResult of result.results) {
|
|
362
|
-
console.log(`\n${'โ'.repeat(50)}`);
|
|
363
|
-
console.log(`Agent: @${agentResult.agentId} ${agentResult.success ? 'โ
' : 'โ'}`);
|
|
364
|
-
console.log('โ'.repeat(50));
|
|
365
|
-
if (agentResult.success) {
|
|
366
|
-
hasAnySuccess = true;
|
|
367
|
-
console.log(agentResult.response || 'No response');
|
|
368
|
-
await this.conversationProvider.addMessage(this.currentThreadId, 'assistant', agentResult.response || 'No response', true, agentResult.agentId);
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
console.error(`Error: ${agentResult.error || 'Unknown error'}`);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
console.log();
|
|
375
|
-
if (!hasAnySuccess) {
|
|
376
|
-
console.error('โ All agents failed\n');
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
catch (error) {
|
|
382
|
-
this.logger.error(`Error processing message: ${error.message}`);
|
|
383
|
-
console.error(`โ Error: ${error.message}\n`);
|
|
384
|
-
}
|
|
385
|
-
rl.prompt();
|
|
386
|
-
});
|
|
387
|
-
rl.on('close', () => {
|
|
388
|
-
console.log(`\n๐ Conversation saved as: ${this.currentThreadId}`);
|
|
389
|
-
resolve();
|
|
390
|
-
process.exit(0);
|
|
391
|
-
});
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
async listThreads() {
|
|
395
|
-
const threads = await this.conversationProvider.listThreads();
|
|
396
|
-
if (threads.length === 0) {
|
|
397
|
-
console.log('No conversation threads found.');
|
|
398
|
-
return;
|
|
399
|
-
}
|
|
400
|
-
console.log('\n๐ Conversation Threads:\n');
|
|
401
|
-
for (const threadId of threads) {
|
|
402
|
-
const thread = await this.conversationProvider.fetchHistory(threadId);
|
|
403
|
-
const messageCount = thread.messages.length;
|
|
404
|
-
const lastMessage = thread.messages[messageCount - 1];
|
|
405
|
-
const preview = lastMessage
|
|
406
|
-
? lastMessage.text.substring(0, 50) + '...'
|
|
407
|
-
: 'Empty';
|
|
408
|
-
console.log(` ${threadId}`);
|
|
409
|
-
console.log(` Messages: ${messageCount}`);
|
|
410
|
-
console.log(` Last: ${preview}`);
|
|
411
|
-
console.log();
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
async showHistory(threadId) {
|
|
415
|
-
const thread = await this.conversationProvider.fetchHistory(threadId);
|
|
416
|
-
if (thread.messages.length === 0) {
|
|
417
|
-
console.log(`Thread '${threadId}' not found or empty.`);
|
|
418
|
-
return;
|
|
419
|
-
}
|
|
420
|
-
const formatter = new terminal_message_formatter_1.TerminalMessageFormatter({
|
|
421
|
-
colorize: process.stdout.isTTY,
|
|
422
|
-
indent: 4,
|
|
423
|
-
});
|
|
424
|
-
const structuredMessages = formatter.convertToStructuredArray(thread.messages);
|
|
425
|
-
const history = formatter.formatHistory(structuredMessages);
|
|
426
|
-
console.log(`\n๐ Conversation History: ${threadId}\n`);
|
|
427
|
-
console.log(history);
|
|
428
|
-
console.log();
|
|
429
|
-
}
|
|
430
|
-
async deleteThread(threadId) {
|
|
431
|
-
const exists = await this.conversationProvider.hasHistory(threadId);
|
|
432
|
-
if (!exists) {
|
|
433
|
-
console.log(`Thread '${threadId}' not found.`);
|
|
434
|
-
return;
|
|
435
|
-
}
|
|
436
|
-
await this.conversationProvider.deleteThread(threadId);
|
|
437
|
-
console.log(`โ
Thread '${threadId}' deleted.`);
|
|
438
|
-
}
|
|
439
|
-
async cleanupThreads(days) {
|
|
440
|
-
console.log(`๐งน Cleaning up threads older than ${days} days...`);
|
|
441
|
-
const count = await this.conversationProvider.cleanupOldThreads(days);
|
|
442
|
-
console.log(`โ
Deleted ${count} old threads.`);
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
exports.ChatHandler = ChatHandler;
|
|
446
|
-
//# sourceMappingURL=chat.handler.js.map
|