jazz-ai 0.1.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.
- package/LICENSE +21 -0
- package/README.md +182 -0
- package/dist/cli/commands/auth.d.ts +18 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +128 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/chat-agent.d.ts +18 -0
- package/dist/cli/commands/chat-agent.d.ts.map +1 -0
- package/dist/cli/commands/chat-agent.js +421 -0
- package/dist/cli/commands/chat-agent.js.map +1 -0
- package/dist/cli/commands/edit-agent.d.ts +10 -0
- package/dist/cli/commands/edit-agent.d.ts.map +1 -0
- package/dist/cli/commands/edit-agent.js +310 -0
- package/dist/cli/commands/edit-agent.js.map +1 -0
- package/dist/cli/commands/task-agent.d.ts +126 -0
- package/dist/cli/commands/task-agent.d.ts.map +1 -0
- package/dist/cli/commands/task-agent.js +345 -0
- package/dist/cli/commands/task-agent.js.map +1 -0
- package/dist/core/agent/agent-prompt.d.ts +47 -0
- package/dist/core/agent/agent-prompt.d.ts.map +1 -0
- package/dist/core/agent/agent-prompt.js +146 -0
- package/dist/core/agent/agent-prompt.js.map +1 -0
- package/dist/core/agent/agent-runner.d.ts +63 -0
- package/dist/core/agent/agent-runner.d.ts.map +1 -0
- package/dist/core/agent/agent-runner.js +346 -0
- package/dist/core/agent/agent-runner.js.map +1 -0
- package/dist/core/agent/agent-service.d.ts +164 -0
- package/dist/core/agent/agent-service.d.ts.map +1 -0
- package/dist/core/agent/agent-service.js +463 -0
- package/dist/core/agent/agent-service.js.map +1 -0
- package/dist/core/agent/gmail-agent.d.ts +17 -0
- package/dist/core/agent/gmail-agent.d.ts.map +1 -0
- package/dist/core/agent/gmail-agent.js +191 -0
- package/dist/core/agent/gmail-agent.js.map +1 -0
- package/dist/core/agent/prompts/default/v1.d.ts +2 -0
- package/dist/core/agent/prompts/default/v1.d.ts.map +1 -0
- package/dist/core/agent/prompts/default/v1.js +202 -0
- package/dist/core/agent/prompts/default/v1.js.map +1 -0
- package/dist/core/agent/prompts/default/v2.d.ts +2 -0
- package/dist/core/agent/prompts/default/v2.d.ts.map +1 -0
- package/dist/core/agent/prompts/default/v2.js +72 -0
- package/dist/core/agent/prompts/default/v2.js.map +1 -0
- package/dist/core/agent/prompts/gmail/v1.d.ts +2 -0
- package/dist/core/agent/prompts/gmail/v1.d.ts.map +1 -0
- package/dist/core/agent/prompts/gmail/v1.js +206 -0
- package/dist/core/agent/prompts/gmail/v1.js.map +1 -0
- package/dist/core/agent/prompts/gmail/v2.d.ts +2 -0
- package/dist/core/agent/prompts/gmail/v2.d.ts.map +1 -0
- package/dist/core/agent/prompts/gmail/v2.js +59 -0
- package/dist/core/agent/prompts/gmail/v2.js.map +1 -0
- package/dist/core/agent/tools/base-tool.d.ts +161 -0
- package/dist/core/agent/tools/base-tool.d.ts.map +1 -0
- package/dist/core/agent/tools/base-tool.js +153 -0
- package/dist/core/agent/tools/base-tool.js.map +1 -0
- package/dist/core/agent/tools/fs-tools.d.ts +21 -0
- package/dist/core/agent/tools/fs-tools.d.ts.map +1 -0
- package/dist/core/agent/tools/fs-tools.js +1210 -0
- package/dist/core/agent/tools/fs-tools.js.map +1 -0
- package/dist/core/agent/tools/git-tools.d.ts +63 -0
- package/dist/core/agent/tools/git-tools.d.ts.map +1 -0
- package/dist/core/agent/tools/git-tools.js +600 -0
- package/dist/core/agent/tools/git-tools.js.map +1 -0
- package/dist/core/agent/tools/gmail-tools.d.ts +22 -0
- package/dist/core/agent/tools/gmail-tools.d.ts.map +1 -0
- package/dist/core/agent/tools/gmail-tools.js +779 -0
- package/dist/core/agent/tools/gmail-tools.js.map +1 -0
- package/dist/core/agent/tools/register-tools.d.ts +13 -0
- package/dist/core/agent/tools/register-tools.d.ts.map +1 -0
- package/dist/core/agent/tools/register-tools.js +169 -0
- package/dist/core/agent/tools/register-tools.js.map +1 -0
- package/dist/core/agent/tools/shell-tools.d.ts +19 -0
- package/dist/core/agent/tools/shell-tools.d.ts.map +1 -0
- package/dist/core/agent/tools/shell-tools.js +367 -0
- package/dist/core/agent/tools/shell-tools.js.map +1 -0
- package/dist/core/agent/tools/tool-registry.d.ts +62 -0
- package/dist/core/agent/tools/tool-registry.d.ts.map +1 -0
- package/dist/core/agent/tools/tool-registry.js +187 -0
- package/dist/core/agent/tools/tool-registry.js.map +1 -0
- package/dist/core/agent/tools/web-search-tools.d.ts +39 -0
- package/dist/core/agent/tools/web-search-tools.d.ts.map +1 -0
- package/dist/core/agent/tools/web-search-tools.js +220 -0
- package/dist/core/agent/tools/web-search-tools.js.map +1 -0
- package/dist/core/types/errors.d.ts +300 -0
- package/dist/core/types/errors.d.ts.map +1 -0
- package/dist/core/types/errors.js +115 -0
- package/dist/core/types/errors.js.map +1 -0
- package/dist/core/types/index.d.ts +208 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +30 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/utils/error-handler.d.ts +114 -0
- package/dist/core/utils/error-handler.d.ts.map +1 -0
- package/dist/core/utils/error-handler.js +551 -0
- package/dist/core/utils/error-handler.js.map +1 -0
- package/dist/core/utils/markdown-renderer.d.ts +52 -0
- package/dist/core/utils/markdown-renderer.d.ts.map +1 -0
- package/dist/core/utils/markdown-renderer.js +134 -0
- package/dist/core/utils/markdown-renderer.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +255 -0
- package/dist/main.js.map +1 -0
- package/dist/services/config.d.ts +29 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +204 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/gmail.d.ts +197 -0
- package/dist/services/gmail.d.ts.map +1 -0
- package/dist/services/gmail.js +592 -0
- package/dist/services/gmail.js.map +1 -0
- package/dist/services/llm/ai-sdk-service.d.ts +5 -0
- package/dist/services/llm/ai-sdk-service.d.ts.map +1 -0
- package/dist/services/llm/ai-sdk-service.js +326 -0
- package/dist/services/llm/ai-sdk-service.js.map +1 -0
- package/dist/services/llm/context-manager.d.ts +51 -0
- package/dist/services/llm/context-manager.d.ts.map +1 -0
- package/dist/services/llm/context-manager.js +269 -0
- package/dist/services/llm/context-manager.js.map +1 -0
- package/dist/services/llm/types.d.ts +114 -0
- package/dist/services/llm/types.d.ts.map +1 -0
- package/dist/services/llm/types.js +51 -0
- package/dist/services/llm/types.js.map +1 -0
- package/dist/services/logger.d.ts +28 -0
- package/dist/services/logger.d.ts.map +1 -0
- package/dist/services/logger.js +267 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/shell.d.ts +37 -0
- package/dist/services/shell.d.ts.map +1 -0
- package/dist/services/shell.js +197 -0
- package/dist/services/shell.js.map +1 -0
- package/dist/services/storage/file.d.ts +37 -0
- package/dist/services/storage/file.d.ts.map +1 -0
- package/dist/services/storage/file.js +221 -0
- package/dist/services/storage/file.js.map +1 -0
- package/dist/services/storage/inMemory.d.ts +25 -0
- package/dist/services/storage/inMemory.d.ts.map +1 -0
- package/dist/services/storage/inMemory.js +106 -0
- package/dist/services/storage/inMemory.js.map +1 -0
- package/dist/services/storage/service.d.ts +26 -0
- package/dist/services/storage/service.d.ts.map +1 -0
- package/dist/services/storage/service.js +48 -0
- package/dist/services/storage/service.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAIAgentCommand = createAIAgentCommand;
|
|
4
|
+
exports.chatWithAIAgentCommand = chatWithAIAgentCommand;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const effect_1 = require("effect");
|
|
7
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
8
|
+
const agent_prompt_1 = require("../../core/agent/agent-prompt");
|
|
9
|
+
const agent_runner_1 = require("../../core/agent/agent-runner");
|
|
10
|
+
const agent_service_1 = require("../../core/agent/agent-service");
|
|
11
|
+
const tool_registry_1 = require("../../core/agent/tools/tool-registry");
|
|
12
|
+
const markdown_renderer_1 = require("../../core/utils/markdown-renderer");
|
|
13
|
+
const types_1 = require("../../services/llm/types");
|
|
14
|
+
const logger_1 = require("../../services/logger");
|
|
15
|
+
const shell_1 = require("../../services/shell");
|
|
16
|
+
/**
|
|
17
|
+
* Interactive AI agent creation command
|
|
18
|
+
*/
|
|
19
|
+
function createAIAgentCommand() {
|
|
20
|
+
return effect_1.Effect.gen(function* () {
|
|
21
|
+
console.log("🤖 Welcome to the Jazz AI Agent Creation Wizard!");
|
|
22
|
+
console.log("Let's create a new AI agent step by step.\n");
|
|
23
|
+
// Get available LLM providers and models
|
|
24
|
+
const llmService = yield* types_1.LLMServiceTag;
|
|
25
|
+
const providers = yield* llmService.listProviders();
|
|
26
|
+
if (providers.length === 0) {
|
|
27
|
+
return yield* effect_1.Effect.fail(new types_1.LLMConfigurationError("no_providers", "No LLM providers configured. Set an API key for at least one provider in the config."));
|
|
28
|
+
}
|
|
29
|
+
// Get available agent types
|
|
30
|
+
const agentTypes = yield* agent_prompt_1.agentPromptBuilder.listTemplates();
|
|
31
|
+
// Get available tools by category
|
|
32
|
+
const toolRegistry = yield* tool_registry_1.ToolRegistryTag;
|
|
33
|
+
const toolsByCategory = yield* toolRegistry.listToolsByCategory();
|
|
34
|
+
// Get agent basic information
|
|
35
|
+
const agentAnswers = yield* effect_1.Effect.promise(() => promptForAgentInfo(providers, agentTypes, toolsByCategory, llmService));
|
|
36
|
+
// Validate the chosen model against the chosen provider
|
|
37
|
+
const chosenProvider = yield* llmService.getProvider(agentAnswers.llmProvider);
|
|
38
|
+
const modelIds = chosenProvider.supportedModels.map((model) => model.id);
|
|
39
|
+
const selectedModel = modelIds.includes(agentAnswers.llmModel)
|
|
40
|
+
? agentAnswers.llmModel
|
|
41
|
+
: chosenProvider.defaultModel;
|
|
42
|
+
// Convert selected categories to actual tool names
|
|
43
|
+
const selectedTools = [];
|
|
44
|
+
for (const category of agentAnswers.tools) {
|
|
45
|
+
const toolsInCategory = toolsByCategory[category] || [];
|
|
46
|
+
selectedTools.push(...toolsInCategory);
|
|
47
|
+
}
|
|
48
|
+
// Build agent configuration
|
|
49
|
+
const config = {
|
|
50
|
+
tasks: [],
|
|
51
|
+
agentType: agentAnswers.agentType,
|
|
52
|
+
llmProvider: agentAnswers.llmProvider,
|
|
53
|
+
llmModel: selectedModel,
|
|
54
|
+
...(agentAnswers.reasoningEffort && { reasoningEffort: agentAnswers.reasoningEffort }),
|
|
55
|
+
tools: selectedTools,
|
|
56
|
+
environment: {},
|
|
57
|
+
};
|
|
58
|
+
const agentService = yield* agent_service_1.AgentServiceTag;
|
|
59
|
+
const agent = yield* agentService.createAgent(agentAnswers.name, agentAnswers.description, config);
|
|
60
|
+
// Display success message
|
|
61
|
+
console.log("\n✅ AI Agent created successfully!");
|
|
62
|
+
console.log(` ID: ${agent.id}`);
|
|
63
|
+
console.log(` Name: ${agent.name}`);
|
|
64
|
+
console.log(` Description: ${agent.description}`);
|
|
65
|
+
console.log(` Type: ${config.agentType}`);
|
|
66
|
+
console.log(` LLM Provider: ${config.llmProvider}`);
|
|
67
|
+
console.log(` LLM Model: ${config.llmModel}`);
|
|
68
|
+
console.log(` Tool Categories: ${agentAnswers.tools.join(", ") || "None"}`);
|
|
69
|
+
console.log(` Total Tools: ${selectedTools.length}`);
|
|
70
|
+
console.log(` Status: ${agent.status}`);
|
|
71
|
+
console.log(` Created: ${agent.createdAt.toISOString()}`);
|
|
72
|
+
console.log("\nYou can now chat with your agent using:");
|
|
73
|
+
console.log(`jazz agent chat ${agent.id}`);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Prompt for basic agent information
|
|
78
|
+
*/
|
|
79
|
+
async function promptForAgentInfo(providers, agentTypes, toolsByCategory, llmService) {
|
|
80
|
+
// First, get basic information and provider
|
|
81
|
+
const basicQuestions = [
|
|
82
|
+
{
|
|
83
|
+
type: "input",
|
|
84
|
+
name: "name",
|
|
85
|
+
message: "What would you like to name your AI agent?",
|
|
86
|
+
validate: (input) => {
|
|
87
|
+
if (!input || input.trim().length === 0) {
|
|
88
|
+
return "Agent name cannot be empty";
|
|
89
|
+
}
|
|
90
|
+
if (input.length > 100) {
|
|
91
|
+
return "Agent name cannot exceed 100 characters";
|
|
92
|
+
}
|
|
93
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(input)) {
|
|
94
|
+
return "Agent name can only contain letters, numbers, underscores, and hyphens";
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: "input",
|
|
101
|
+
name: "description",
|
|
102
|
+
message: "Describe what this AI agent will do:",
|
|
103
|
+
validate: (input) => {
|
|
104
|
+
if (!input || input.trim().length === 0) {
|
|
105
|
+
return "Agent description cannot be empty";
|
|
106
|
+
}
|
|
107
|
+
if (input.length > 500) {
|
|
108
|
+
return "Agent description cannot exceed 500 characters";
|
|
109
|
+
}
|
|
110
|
+
return true;
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: "list",
|
|
115
|
+
name: "agentType",
|
|
116
|
+
message: "What type of agent would you like to create?",
|
|
117
|
+
choices: agentTypes,
|
|
118
|
+
default: "default",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: "list",
|
|
122
|
+
name: "llmProvider",
|
|
123
|
+
message: "Which LLM provider would you like to use?",
|
|
124
|
+
choices: providers,
|
|
125
|
+
default: providers[0],
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
// @ts-expect-error - inquirer types are not matching correctly
|
|
129
|
+
const basicAnswers = (await inquirer_1.default.prompt(basicQuestions));
|
|
130
|
+
// Now get the models for the chosen provider
|
|
131
|
+
const chosenProviderInfo = await effect_1.Effect.runPromise(llmService.getProvider(basicAnswers.llmProvider)).catch((error) => {
|
|
132
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
133
|
+
throw new Error(`Failed to get provider info: ${message}`);
|
|
134
|
+
});
|
|
135
|
+
const modelDefault = chosenProviderInfo.defaultModel;
|
|
136
|
+
// Check if the selected model is a reasoning model
|
|
137
|
+
const selectedModelInfo = chosenProviderInfo.supportedModels.find((model) => model.id === modelDefault);
|
|
138
|
+
const isReasoningModel = selectedModelInfo?.isReasoningModel ?? false;
|
|
139
|
+
const finalQuestions = [
|
|
140
|
+
{
|
|
141
|
+
type: "list",
|
|
142
|
+
name: "llmModel",
|
|
143
|
+
message: "Which model would you like to use?",
|
|
144
|
+
choices: chosenProviderInfo.supportedModels.map((model) => ({
|
|
145
|
+
name: model.displayName || model.id,
|
|
146
|
+
value: model.id,
|
|
147
|
+
short: model.displayName || model.id,
|
|
148
|
+
})),
|
|
149
|
+
default: modelDefault,
|
|
150
|
+
},
|
|
151
|
+
// Only show reasoning effort question for reasoning models
|
|
152
|
+
...(isReasoningModel
|
|
153
|
+
? [
|
|
154
|
+
{
|
|
155
|
+
type: "list",
|
|
156
|
+
name: "reasoningEffort",
|
|
157
|
+
message: "What reasoning effort level would you like?",
|
|
158
|
+
choices: [
|
|
159
|
+
{ name: "Disable - No reasoning effort (fastest)", value: "disable" },
|
|
160
|
+
{ name: "Low - Faster responses, basic reasoning", value: "low" },
|
|
161
|
+
{ name: "Medium - Balanced speed and reasoning depth", value: "medium" },
|
|
162
|
+
{ name: "High - Deep reasoning, slower responses", value: "high" },
|
|
163
|
+
],
|
|
164
|
+
default: "disable",
|
|
165
|
+
},
|
|
166
|
+
]
|
|
167
|
+
: []),
|
|
168
|
+
{
|
|
169
|
+
type: "checkbox",
|
|
170
|
+
name: "tools",
|
|
171
|
+
message: "Which tools should this agent have access to?",
|
|
172
|
+
choices: Object.entries(toolsByCategory).map(([category, tools]) => ({
|
|
173
|
+
name: `${category} (${tools.length} ${tools.length === 1 ? "tool" : "tools"})`,
|
|
174
|
+
value: category,
|
|
175
|
+
short: category,
|
|
176
|
+
})),
|
|
177
|
+
default: [],
|
|
178
|
+
},
|
|
179
|
+
];
|
|
180
|
+
// @ts-expect-error - inquirer types are not matching correctly
|
|
181
|
+
const finalAnswers = (await inquirer_1.default.prompt(finalQuestions));
|
|
182
|
+
// Combine all answers
|
|
183
|
+
return {
|
|
184
|
+
...basicAnswers,
|
|
185
|
+
...finalAnswers,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Chat with an AI agent
|
|
190
|
+
*/
|
|
191
|
+
function chatWithAIAgentCommand(agentId) {
|
|
192
|
+
return effect_1.Effect.gen(function* () {
|
|
193
|
+
// Get the agent service
|
|
194
|
+
const agentService = yield* agent_service_1.AgentServiceTag;
|
|
195
|
+
// Get the agent
|
|
196
|
+
const agent = yield* agentService.getAgent(agentId);
|
|
197
|
+
console.log(`🤖 Starting chat with AI agent: ${agent.name} (${agent.id})`);
|
|
198
|
+
console.log(` Description: ${agent.description}`);
|
|
199
|
+
console.log();
|
|
200
|
+
console.log("Type 'exit' or 'quit' to end the conversation.");
|
|
201
|
+
console.log("Type '/help' to see available special commands.");
|
|
202
|
+
console.log();
|
|
203
|
+
// Start the chat loop with error logging
|
|
204
|
+
yield* startChatLoop(agent).pipe(effect_1.Effect.catchAll((error) => effect_1.Effect.gen(function* () {
|
|
205
|
+
const logger = yield* logger_1.LoggerServiceTag;
|
|
206
|
+
yield* logger.error("Chat loop error", { error });
|
|
207
|
+
console.error("❌ Chat loop error:", error);
|
|
208
|
+
return yield* effect_1.Effect.void;
|
|
209
|
+
})));
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
function initializeSession(agent, conversationId) {
|
|
213
|
+
return effect_1.Effect.gen(function* () {
|
|
214
|
+
const agentKey = { agentId: agent.id, conversationId };
|
|
215
|
+
const fileSystemContext = yield* shell_1.FileSystemContextServiceTag;
|
|
216
|
+
const logger = yield* logger_1.LoggerServiceTag;
|
|
217
|
+
yield* fileSystemContext.setCwd(agentKey, process.cwd());
|
|
218
|
+
yield* logger.info(`Initialized agent working directory to: ${process.cwd()}`);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Parse special commands from user input
|
|
223
|
+
*/
|
|
224
|
+
function parseSpecialCommand(input) {
|
|
225
|
+
const trimmed = input.trim();
|
|
226
|
+
if (!trimmed.startsWith("/")) {
|
|
227
|
+
return { type: "unknown", args: [] };
|
|
228
|
+
}
|
|
229
|
+
const parts = trimmed.slice(1).split(/\s+/);
|
|
230
|
+
const command = parts[0]?.toLowerCase() || "";
|
|
231
|
+
const args = parts.slice(1);
|
|
232
|
+
switch (command) {
|
|
233
|
+
case "new":
|
|
234
|
+
return { type: "new", args };
|
|
235
|
+
case "help":
|
|
236
|
+
return { type: "help", args };
|
|
237
|
+
case "status":
|
|
238
|
+
return { type: "status", args };
|
|
239
|
+
case "clear":
|
|
240
|
+
return { type: "clear", args };
|
|
241
|
+
case "tools":
|
|
242
|
+
return { type: "tools", args };
|
|
243
|
+
default:
|
|
244
|
+
return { type: "unknown", args: [command, ...args] };
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Handle special commands
|
|
249
|
+
*/
|
|
250
|
+
function handleSpecialCommand(command, agent, conversationId, conversationHistory) {
|
|
251
|
+
return effect_1.Effect.gen(function* () {
|
|
252
|
+
switch (command.type) {
|
|
253
|
+
case "new":
|
|
254
|
+
console.log("🆕 Starting new conversation...");
|
|
255
|
+
console.log(" • Conversation context cleared");
|
|
256
|
+
console.log(" • Fresh start with the agent");
|
|
257
|
+
console.log();
|
|
258
|
+
return {
|
|
259
|
+
shouldContinue: true,
|
|
260
|
+
newConversationId: undefined,
|
|
261
|
+
newHistory: [],
|
|
262
|
+
};
|
|
263
|
+
case "help":
|
|
264
|
+
console.log("📖 Available special commands:");
|
|
265
|
+
console.log(" /new - Start a new conversation (clear context)");
|
|
266
|
+
console.log(" /status - Show current conversation status");
|
|
267
|
+
console.log(" /tools - List all available tools by category");
|
|
268
|
+
console.log(" /edit - Edit this agent's configuration");
|
|
269
|
+
console.log(" /clear - Clear the screen");
|
|
270
|
+
console.log(" /help - Show this help message");
|
|
271
|
+
console.log(" exit - Exit the chat");
|
|
272
|
+
console.log();
|
|
273
|
+
return { shouldContinue: true };
|
|
274
|
+
case "status":
|
|
275
|
+
console.log("📊 Conversation Status:");
|
|
276
|
+
console.log(` Agent: ${agent.name} (${agent.id})`);
|
|
277
|
+
console.log(` Conversation ID: ${conversationId || "Not started"}`);
|
|
278
|
+
console.log(` Messages in history: ${conversationHistory.length}`);
|
|
279
|
+
console.log(` Agent type: ${agent.config.agentType}`);
|
|
280
|
+
console.log(` LLM: ${agent.config.llmProvider}/${agent.config.llmModel}`);
|
|
281
|
+
console.log(` Tools: ${agent.config.tools?.length || 0} available`);
|
|
282
|
+
console.log();
|
|
283
|
+
return { shouldContinue: true };
|
|
284
|
+
case "tools": {
|
|
285
|
+
const toolRegistry = yield* tool_registry_1.ToolRegistryTag;
|
|
286
|
+
const toolsByCategory = yield* toolRegistry.listToolsByCategory();
|
|
287
|
+
console.log("🔧 Available Tools by Category:");
|
|
288
|
+
console.log();
|
|
289
|
+
if (Object.keys(toolsByCategory).length === 0) {
|
|
290
|
+
console.log(" No tools available.");
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Sort categories alphabetically
|
|
294
|
+
const sortedCategories = Object.keys(toolsByCategory).sort();
|
|
295
|
+
for (const category of sortedCategories) {
|
|
296
|
+
const tools = toolsByCategory[category];
|
|
297
|
+
if (tools && tools.length > 0) {
|
|
298
|
+
console.log(` 📁 ${category} (${tools.length} ${tools.length === 1 ? "tool" : "tools"}):`);
|
|
299
|
+
for (const tool of tools) {
|
|
300
|
+
console.log(` • ${tool}`);
|
|
301
|
+
}
|
|
302
|
+
console.log();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
// Show total count
|
|
306
|
+
const totalTools = Object.values(toolsByCategory).reduce((sum, tools) => sum + (tools?.length || 0), 0);
|
|
307
|
+
console.log(` Total: ${totalTools} tools across ${sortedCategories.length} categories`);
|
|
308
|
+
}
|
|
309
|
+
console.log();
|
|
310
|
+
return { shouldContinue: true };
|
|
311
|
+
}
|
|
312
|
+
case "clear":
|
|
313
|
+
console.clear();
|
|
314
|
+
console.log(`🤖 Chat with ${agent.name} - Screen cleared`);
|
|
315
|
+
console.log("Type 'exit' or 'quit' to end the conversation.");
|
|
316
|
+
console.log("Type '/help' to see available commands.");
|
|
317
|
+
console.log();
|
|
318
|
+
return { shouldContinue: true };
|
|
319
|
+
case "unknown":
|
|
320
|
+
console.log(`❓ Unknown command: /${command.args.join(" ")}`);
|
|
321
|
+
console.log("Type '/help' to see available commands.");
|
|
322
|
+
console.log();
|
|
323
|
+
return { shouldContinue: true };
|
|
324
|
+
default:
|
|
325
|
+
return { shouldContinue: true };
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Chat loop for interacting with the AI agent
|
|
331
|
+
*/
|
|
332
|
+
function startChatLoop(agent) {
|
|
333
|
+
return effect_1.Effect.gen(function* () {
|
|
334
|
+
let chatActive = true;
|
|
335
|
+
let conversationId;
|
|
336
|
+
let conversationHistory = [];
|
|
337
|
+
let sessionInitialized = false;
|
|
338
|
+
while (chatActive) {
|
|
339
|
+
// Prompt for user input
|
|
340
|
+
const answer = yield* effect_1.Effect.promise(() => inquirer_1.default.prompt([
|
|
341
|
+
{
|
|
342
|
+
type: "input",
|
|
343
|
+
name: "message",
|
|
344
|
+
message: "You:",
|
|
345
|
+
},
|
|
346
|
+
]));
|
|
347
|
+
const userMessage = answer.message;
|
|
348
|
+
// Check if user wants to exit
|
|
349
|
+
if (userMessage.toLowerCase() === "exit" || userMessage.toLowerCase() === "quit") {
|
|
350
|
+
console.log("👋 Goodbye!");
|
|
351
|
+
chatActive = false;
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
// Ignore empty messages with a gentle hint
|
|
355
|
+
if (!userMessage || userMessage.trim().length === 0) {
|
|
356
|
+
console.log("(Tip) Type a message and press Enter, '/help' for commands, or 'exit' to quit.");
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
// Check for special commands
|
|
360
|
+
const specialCommand = parseSpecialCommand(userMessage);
|
|
361
|
+
if (specialCommand.type !== "unknown") {
|
|
362
|
+
const commandResult = yield* handleSpecialCommand(specialCommand, agent, conversationId, conversationHistory);
|
|
363
|
+
if (commandResult.newConversationId !== undefined) {
|
|
364
|
+
conversationId = commandResult.newConversationId;
|
|
365
|
+
}
|
|
366
|
+
if (commandResult.newHistory !== undefined) {
|
|
367
|
+
conversationHistory = commandResult.newHistory;
|
|
368
|
+
}
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
try {
|
|
372
|
+
if (!sessionInitialized) {
|
|
373
|
+
yield* initializeSession(agent, conversationId || "").pipe(effect_1.Effect.catchAll((error) => effect_1.Effect.gen(function* () {
|
|
374
|
+
const logger = yield* logger_1.LoggerServiceTag;
|
|
375
|
+
yield* logger.error("Session initialization error", { error });
|
|
376
|
+
})));
|
|
377
|
+
sessionInitialized = true;
|
|
378
|
+
}
|
|
379
|
+
// Create runner options
|
|
380
|
+
const options = {
|
|
381
|
+
agent,
|
|
382
|
+
userInput: userMessage,
|
|
383
|
+
conversationId: conversationId || "",
|
|
384
|
+
conversationHistory,
|
|
385
|
+
};
|
|
386
|
+
// Run the agent
|
|
387
|
+
const response = yield* agent_runner_1.AgentRunner.run(options);
|
|
388
|
+
// Store the conversation ID for continuity
|
|
389
|
+
conversationId = response.conversationId;
|
|
390
|
+
// Persist conversation history for next turn
|
|
391
|
+
if (response.messages) {
|
|
392
|
+
conversationHistory = response.messages;
|
|
393
|
+
}
|
|
394
|
+
// Display the response
|
|
395
|
+
console.log();
|
|
396
|
+
console.log(markdown_renderer_1.MarkdownRenderer.formatAgentResponse(agent.name, response.content));
|
|
397
|
+
console.log();
|
|
398
|
+
}
|
|
399
|
+
catch (error) {
|
|
400
|
+
console.log();
|
|
401
|
+
// Handle different error types with appropriate user feedback
|
|
402
|
+
if (error instanceof types_1.LLMRateLimitError) {
|
|
403
|
+
console.log(`⏳ Rate limit exceeded. The request was too large or you've hit your API limits.`);
|
|
404
|
+
console.log(` Please try again in a moment or consider using a smaller context.`);
|
|
405
|
+
console.log(` Error details: ${error.message}`);
|
|
406
|
+
}
|
|
407
|
+
else if (error instanceof types_1.LLMRequestError) {
|
|
408
|
+
console.log(`❌ LLM request failed: ${error.message}`);
|
|
409
|
+
console.log(` This might be a temporary issue. Please try again.`);
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
console.log(`❌ Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
413
|
+
}
|
|
414
|
+
console.log();
|
|
415
|
+
const logger = yield* logger_1.LoggerServiceTag;
|
|
416
|
+
yield* logger.error("Agent chat processing error", { error });
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=chat-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-agent.js","sourceRoot":"","sources":["../../../src/cli/commands/chat-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { type AgentService } from "../../core/agent/agent-service";
|
|
3
|
+
import { type ToolRegistry } from "../../core/agent/tools/tool-registry";
|
|
4
|
+
import { AgentConfigurationError, StorageError, StorageNotFoundError, ValidationError } from "../../core/types/errors";
|
|
5
|
+
import { LLMConfigurationError, type LLMService } from "../../services/llm/types";
|
|
6
|
+
/**
|
|
7
|
+
* Interactive agent edit command
|
|
8
|
+
*/
|
|
9
|
+
export declare function editAgentCommand(agentId: string): Effect.Effect<void, StorageError | StorageNotFoundError | AgentConfigurationError | ValidationError | LLMConfigurationError, AgentService | LLMService | ToolRegistry>;
|
|
10
|
+
//# sourceMappingURL=edit-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/edit-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAiB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAqBjG;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,CACd,IAAI,EACF,YAAY,GACZ,oBAAoB,GACpB,uBAAuB,GACvB,eAAe,GACf,qBAAqB,EACvB,YAAY,GAAG,UAAU,GAAG,YAAY,CACzC,CAoFA"}
|