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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -0
  3. package/dist/cli/commands/auth.d.ts +18 -0
  4. package/dist/cli/commands/auth.d.ts.map +1 -0
  5. package/dist/cli/commands/auth.js +128 -0
  6. package/dist/cli/commands/auth.js.map +1 -0
  7. package/dist/cli/commands/chat-agent.d.ts +18 -0
  8. package/dist/cli/commands/chat-agent.d.ts.map +1 -0
  9. package/dist/cli/commands/chat-agent.js +421 -0
  10. package/dist/cli/commands/chat-agent.js.map +1 -0
  11. package/dist/cli/commands/edit-agent.d.ts +10 -0
  12. package/dist/cli/commands/edit-agent.d.ts.map +1 -0
  13. package/dist/cli/commands/edit-agent.js +310 -0
  14. package/dist/cli/commands/edit-agent.js.map +1 -0
  15. package/dist/cli/commands/task-agent.d.ts +126 -0
  16. package/dist/cli/commands/task-agent.d.ts.map +1 -0
  17. package/dist/cli/commands/task-agent.js +345 -0
  18. package/dist/cli/commands/task-agent.js.map +1 -0
  19. package/dist/core/agent/agent-prompt.d.ts +47 -0
  20. package/dist/core/agent/agent-prompt.d.ts.map +1 -0
  21. package/dist/core/agent/agent-prompt.js +146 -0
  22. package/dist/core/agent/agent-prompt.js.map +1 -0
  23. package/dist/core/agent/agent-runner.d.ts +63 -0
  24. package/dist/core/agent/agent-runner.d.ts.map +1 -0
  25. package/dist/core/agent/agent-runner.js +346 -0
  26. package/dist/core/agent/agent-runner.js.map +1 -0
  27. package/dist/core/agent/agent-service.d.ts +164 -0
  28. package/dist/core/agent/agent-service.d.ts.map +1 -0
  29. package/dist/core/agent/agent-service.js +463 -0
  30. package/dist/core/agent/agent-service.js.map +1 -0
  31. package/dist/core/agent/gmail-agent.d.ts +17 -0
  32. package/dist/core/agent/gmail-agent.d.ts.map +1 -0
  33. package/dist/core/agent/gmail-agent.js +191 -0
  34. package/dist/core/agent/gmail-agent.js.map +1 -0
  35. package/dist/core/agent/prompts/default/v1.d.ts +2 -0
  36. package/dist/core/agent/prompts/default/v1.d.ts.map +1 -0
  37. package/dist/core/agent/prompts/default/v1.js +202 -0
  38. package/dist/core/agent/prompts/default/v1.js.map +1 -0
  39. package/dist/core/agent/prompts/default/v2.d.ts +2 -0
  40. package/dist/core/agent/prompts/default/v2.d.ts.map +1 -0
  41. package/dist/core/agent/prompts/default/v2.js +72 -0
  42. package/dist/core/agent/prompts/default/v2.js.map +1 -0
  43. package/dist/core/agent/prompts/gmail/v1.d.ts +2 -0
  44. package/dist/core/agent/prompts/gmail/v1.d.ts.map +1 -0
  45. package/dist/core/agent/prompts/gmail/v1.js +206 -0
  46. package/dist/core/agent/prompts/gmail/v1.js.map +1 -0
  47. package/dist/core/agent/prompts/gmail/v2.d.ts +2 -0
  48. package/dist/core/agent/prompts/gmail/v2.d.ts.map +1 -0
  49. package/dist/core/agent/prompts/gmail/v2.js +59 -0
  50. package/dist/core/agent/prompts/gmail/v2.js.map +1 -0
  51. package/dist/core/agent/tools/base-tool.d.ts +161 -0
  52. package/dist/core/agent/tools/base-tool.d.ts.map +1 -0
  53. package/dist/core/agent/tools/base-tool.js +153 -0
  54. package/dist/core/agent/tools/base-tool.js.map +1 -0
  55. package/dist/core/agent/tools/fs-tools.d.ts +21 -0
  56. package/dist/core/agent/tools/fs-tools.d.ts.map +1 -0
  57. package/dist/core/agent/tools/fs-tools.js +1210 -0
  58. package/dist/core/agent/tools/fs-tools.js.map +1 -0
  59. package/dist/core/agent/tools/git-tools.d.ts +63 -0
  60. package/dist/core/agent/tools/git-tools.d.ts.map +1 -0
  61. package/dist/core/agent/tools/git-tools.js +600 -0
  62. package/dist/core/agent/tools/git-tools.js.map +1 -0
  63. package/dist/core/agent/tools/gmail-tools.d.ts +22 -0
  64. package/dist/core/agent/tools/gmail-tools.d.ts.map +1 -0
  65. package/dist/core/agent/tools/gmail-tools.js +779 -0
  66. package/dist/core/agent/tools/gmail-tools.js.map +1 -0
  67. package/dist/core/agent/tools/register-tools.d.ts +13 -0
  68. package/dist/core/agent/tools/register-tools.d.ts.map +1 -0
  69. package/dist/core/agent/tools/register-tools.js +169 -0
  70. package/dist/core/agent/tools/register-tools.js.map +1 -0
  71. package/dist/core/agent/tools/shell-tools.d.ts +19 -0
  72. package/dist/core/agent/tools/shell-tools.d.ts.map +1 -0
  73. package/dist/core/agent/tools/shell-tools.js +367 -0
  74. package/dist/core/agent/tools/shell-tools.js.map +1 -0
  75. package/dist/core/agent/tools/tool-registry.d.ts +62 -0
  76. package/dist/core/agent/tools/tool-registry.d.ts.map +1 -0
  77. package/dist/core/agent/tools/tool-registry.js +187 -0
  78. package/dist/core/agent/tools/tool-registry.js.map +1 -0
  79. package/dist/core/agent/tools/web-search-tools.d.ts +39 -0
  80. package/dist/core/agent/tools/web-search-tools.d.ts.map +1 -0
  81. package/dist/core/agent/tools/web-search-tools.js +220 -0
  82. package/dist/core/agent/tools/web-search-tools.js.map +1 -0
  83. package/dist/core/types/errors.d.ts +300 -0
  84. package/dist/core/types/errors.d.ts.map +1 -0
  85. package/dist/core/types/errors.js +115 -0
  86. package/dist/core/types/errors.js.map +1 -0
  87. package/dist/core/types/index.d.ts +208 -0
  88. package/dist/core/types/index.d.ts.map +1 -0
  89. package/dist/core/types/index.js +30 -0
  90. package/dist/core/types/index.js.map +1 -0
  91. package/dist/core/utils/error-handler.d.ts +114 -0
  92. package/dist/core/utils/error-handler.d.ts.map +1 -0
  93. package/dist/core/utils/error-handler.js +551 -0
  94. package/dist/core/utils/error-handler.js.map +1 -0
  95. package/dist/core/utils/markdown-renderer.d.ts +52 -0
  96. package/dist/core/utils/markdown-renderer.d.ts.map +1 -0
  97. package/dist/core/utils/markdown-renderer.js +134 -0
  98. package/dist/core/utils/markdown-renderer.js.map +1 -0
  99. package/dist/main.d.ts +3 -0
  100. package/dist/main.d.ts.map +1 -0
  101. package/dist/main.js +255 -0
  102. package/dist/main.js.map +1 -0
  103. package/dist/services/config.d.ts +29 -0
  104. package/dist/services/config.d.ts.map +1 -0
  105. package/dist/services/config.js +204 -0
  106. package/dist/services/config.js.map +1 -0
  107. package/dist/services/gmail.d.ts +197 -0
  108. package/dist/services/gmail.d.ts.map +1 -0
  109. package/dist/services/gmail.js +592 -0
  110. package/dist/services/gmail.js.map +1 -0
  111. package/dist/services/llm/ai-sdk-service.d.ts +5 -0
  112. package/dist/services/llm/ai-sdk-service.d.ts.map +1 -0
  113. package/dist/services/llm/ai-sdk-service.js +326 -0
  114. package/dist/services/llm/ai-sdk-service.js.map +1 -0
  115. package/dist/services/llm/context-manager.d.ts +51 -0
  116. package/dist/services/llm/context-manager.d.ts.map +1 -0
  117. package/dist/services/llm/context-manager.js +269 -0
  118. package/dist/services/llm/context-manager.js.map +1 -0
  119. package/dist/services/llm/types.d.ts +114 -0
  120. package/dist/services/llm/types.d.ts.map +1 -0
  121. package/dist/services/llm/types.js +51 -0
  122. package/dist/services/llm/types.js.map +1 -0
  123. package/dist/services/logger.d.ts +28 -0
  124. package/dist/services/logger.d.ts.map +1 -0
  125. package/dist/services/logger.js +267 -0
  126. package/dist/services/logger.js.map +1 -0
  127. package/dist/services/shell.d.ts +37 -0
  128. package/dist/services/shell.d.ts.map +1 -0
  129. package/dist/services/shell.js +197 -0
  130. package/dist/services/shell.js.map +1 -0
  131. package/dist/services/storage/file.d.ts +37 -0
  132. package/dist/services/storage/file.d.ts.map +1 -0
  133. package/dist/services/storage/file.js +221 -0
  134. package/dist/services/storage/file.js.map +1 -0
  135. package/dist/services/storage/inMemory.d.ts +25 -0
  136. package/dist/services/storage/inMemory.d.ts.map +1 -0
  137. package/dist/services/storage/inMemory.js +106 -0
  138. package/dist/services/storage/inMemory.js.map +1 -0
  139. package/dist/services/storage/service.d.ts +26 -0
  140. package/dist/services/storage/service.d.ts.map +1 -0
  141. package/dist/services/storage/service.js +48 -0
  142. package/dist/services/storage/service.js.map +1 -0
  143. 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"}