warden-code 1.0.1 → 1.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/README.md +2 -0
- package/dist/cli/commands/build.d.ts +1 -0
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +80 -14
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/chat.d.ts +7 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +141 -134
- package/dist/cli/commands/chat.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -88,6 +88,8 @@ Your agent will be available at `http://localhost:3000`.
|
|
|
88
88
|
|
|
89
89
|
Run `/build` inside a scaffolded project to enter an AI-powered chat session. Describe the changes you want and the LLM will modify your agent code directly. Requires an OpenAI or Anthropic API key (configured on first run).
|
|
90
90
|
|
|
91
|
+
While in build mode you can type `/chat` to talk to your running agent without leaving the session. The URL is resolved automatically from your project's `.env` (`AGENT_URL`), or you can pass it explicitly (e.g. `/chat http://localhost:3000`). Type `/exit` inside the chat sub-session to return to build mode.
|
|
92
|
+
|
|
91
93
|
## Chatting with an Agent
|
|
92
94
|
|
|
93
95
|
Run `/chat http://localhost:3000` to interact with a running agent. The CLI auto-detects whether the agent supports A2A, LangGraph, or both, and prompts you to choose when multiple protocols are available.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAqC5D,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB7E;AAyFD,eAAO,MAAM,YAAY,EAAE,YAkN1B,CAAC"}
|
|
@@ -7,6 +7,7 @@ import ora from "ora";
|
|
|
7
7
|
import { readConfig, writeConfig, } from "../services/config.js";
|
|
8
8
|
import { createProvider, formatAPIError, isNonRecoverableError, } from "../services/ai/provider.js";
|
|
9
9
|
import { buildProjectContext, parseResponse, applyChanges, SYSTEM_PROMPT, } from "../services/ai/context.js";
|
|
10
|
+
import { runChatSession } from "./chat.js";
|
|
10
11
|
const promptTheme = {
|
|
11
12
|
style: {
|
|
12
13
|
answer: (text) => chalk.rgb(199, 255, 142)(text),
|
|
@@ -23,6 +24,23 @@ async function projectExists(cwd) {
|
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
27
|
+
export async function readAgentUrl(projectDir) {
|
|
28
|
+
try {
|
|
29
|
+
const envContent = await fs.readFile(path.join(projectDir, ".env"), "utf-8");
|
|
30
|
+
for (const line of envContent.split("\n")) {
|
|
31
|
+
const trimmed = line.trim();
|
|
32
|
+
if (trimmed.startsWith("AGENT_URL=")) {
|
|
33
|
+
const value = trimmed.slice("AGENT_URL=".length).trim();
|
|
34
|
+
if (value)
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
26
44
|
const MODEL_CHOICES = {
|
|
27
45
|
openai: [
|
|
28
46
|
{
|
|
@@ -145,11 +163,21 @@ export const buildCommand = {
|
|
|
145
163
|
console.log(chalk.dim("Describe what you want your agent to do. Type /exit to leave.\n"));
|
|
146
164
|
// Chat loop
|
|
147
165
|
const messages = [];
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
166
|
+
let running = true;
|
|
167
|
+
const createRl = () => {
|
|
168
|
+
const rl = readline.createInterface({
|
|
169
|
+
input: process.stdin,
|
|
170
|
+
output: process.stdout,
|
|
171
|
+
});
|
|
172
|
+
rl.on("SIGINT", () => {
|
|
173
|
+
running = false;
|
|
174
|
+
rl.close();
|
|
175
|
+
console.log();
|
|
176
|
+
context.log.dim("Exited build mode.");
|
|
177
|
+
});
|
|
178
|
+
return rl;
|
|
179
|
+
};
|
|
180
|
+
const question = (rl, prompt) => new Promise((resolve, reject) => {
|
|
153
181
|
const onClose = () => reject(new Error("closed"));
|
|
154
182
|
rl.once("close", onClose);
|
|
155
183
|
rl.question(prompt, (answer) => {
|
|
@@ -157,18 +185,11 @@ export const buildCommand = {
|
|
|
157
185
|
resolve(answer);
|
|
158
186
|
});
|
|
159
187
|
});
|
|
160
|
-
let
|
|
161
|
-
// Handle Ctrl+C — exit build mode gracefully
|
|
162
|
-
rl.on("SIGINT", () => {
|
|
163
|
-
running = false;
|
|
164
|
-
rl.close();
|
|
165
|
-
console.log();
|
|
166
|
-
context.log.dim("Exited build mode.");
|
|
167
|
-
});
|
|
188
|
+
let rl = createRl();
|
|
168
189
|
while (running) {
|
|
169
190
|
let userInput;
|
|
170
191
|
try {
|
|
171
|
-
userInput = await question(chatPrompt());
|
|
192
|
+
userInput = await question(rl, chatPrompt());
|
|
172
193
|
}
|
|
173
194
|
catch {
|
|
174
195
|
break;
|
|
@@ -183,6 +204,51 @@ export const buildCommand = {
|
|
|
183
204
|
context.log.dim("Exited build mode.");
|
|
184
205
|
break;
|
|
185
206
|
}
|
|
207
|
+
// ── /chat sub-command ──────────────────────────────────
|
|
208
|
+
if (trimmed === "/chat" || trimmed.startsWith("/chat ")) {
|
|
209
|
+
const chatArg = trimmed.slice("/chat".length).trim();
|
|
210
|
+
let chatUrl = chatArg || null;
|
|
211
|
+
// Try to resolve URL from .env if not provided
|
|
212
|
+
if (!chatUrl) {
|
|
213
|
+
chatUrl = await readAgentUrl(projectDir);
|
|
214
|
+
if (chatUrl) {
|
|
215
|
+
context.log.dim(`Using AGENT_URL from .env: ${chatUrl}`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Prompt for URL if still missing
|
|
219
|
+
if (!chatUrl) {
|
|
220
|
+
try {
|
|
221
|
+
chatUrl = await question(rl, chalk.dim("Enter agent URL: "));
|
|
222
|
+
chatUrl = chatUrl.trim();
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (!chatUrl) {
|
|
229
|
+
context.log.error("No URL provided.");
|
|
230
|
+
console.log();
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
const baseUrl = chatUrl.replace(/\/+$/, "");
|
|
234
|
+
try {
|
|
235
|
+
new URL(baseUrl);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
context.log.error(`Invalid URL: ${chatUrl}`);
|
|
239
|
+
console.log();
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
// Close build readline before entering chat session
|
|
243
|
+
rl.close();
|
|
244
|
+
await runChatSession(baseUrl, context);
|
|
245
|
+
// Return to build mode
|
|
246
|
+
console.log();
|
|
247
|
+
context.log.info("Back to build mode.");
|
|
248
|
+
console.log();
|
|
249
|
+
rl = createRl();
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
186
252
|
// Build context from current project files
|
|
187
253
|
const projectContext = await buildProjectContext(projectDir);
|
|
188
254
|
// On first message, add system prompt with context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EACL,UAAU,EACV,WAAW,GAEZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import type { SlashCommand } from "../types.js";
|
|
1
|
+
import type { SlashCommand, CliContext } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Runs an interactive chat session with an agent.
|
|
4
|
+
* Probes the agent, connects, and enters a chat loop.
|
|
5
|
+
* Returns when the user types /exit or Ctrl+C.
|
|
6
|
+
*/
|
|
7
|
+
export declare function runChatSession(baseUrl: string, context: CliContext): Promise<void>;
|
|
2
8
|
export declare const chatCommand: SlashCommand;
|
|
3
9
|
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAuE5D;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CA2Jf;AAED,eAAO,MAAM,WAAW,EAAE,YAwBzB,CAAC"}
|
|
@@ -5,7 +5,7 @@ import ora from "ora";
|
|
|
5
5
|
import { probeAgent } from "../services/agent/probe.js";
|
|
6
6
|
import { A2AClient, AgentRequestError, AgentProtocolError, } from "../services/agent/a2a-client.js";
|
|
7
7
|
import { LangGraphClient } from "../services/agent/langgraph-client.js";
|
|
8
|
-
function
|
|
8
|
+
function chatModePrompt() {
|
|
9
9
|
return chalk.rgb(199, 255, 142)("chat") + chalk.dim("> ");
|
|
10
10
|
}
|
|
11
11
|
function createClient(protocol, baseUrl) {
|
|
@@ -56,13 +56,151 @@ function isNonRecoverableError(error) {
|
|
|
56
56
|
}
|
|
57
57
|
return false;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Runs an interactive chat session with an agent.
|
|
61
|
+
* Probes the agent, connects, and enters a chat loop.
|
|
62
|
+
* Returns when the user types /exit or Ctrl+C.
|
|
63
|
+
*/
|
|
64
|
+
export async function runChatSession(baseUrl, context) {
|
|
65
|
+
// ── Probe agent ────────────────────────────────────────────
|
|
66
|
+
const spinner = ora({
|
|
67
|
+
text: "Connecting to agent...",
|
|
68
|
+
discardStdin: false,
|
|
69
|
+
}).start();
|
|
70
|
+
let probeResult;
|
|
71
|
+
try {
|
|
72
|
+
probeResult = await probeAgent(baseUrl);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
spinner.fail("Could not reach agent");
|
|
76
|
+
context.log.error(`Connection failed. Is the agent running at ${baseUrl}?`);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const available = [probeResult.a2a, probeResult.langgraph].filter((info) => info !== null);
|
|
80
|
+
if (available.length === 0) {
|
|
81
|
+
spinner.fail("No supported protocol detected");
|
|
82
|
+
context.log.error(`The agent at ${baseUrl} does not appear to support A2A or LangGraph.`);
|
|
83
|
+
context.log.dim("Checked: /.well-known/agent-card.json (A2A) and /info (LangGraph)");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
spinner.succeed("Agent detected");
|
|
87
|
+
// ── Select protocol ────────────────────────────────────────
|
|
88
|
+
let selectedInfo;
|
|
89
|
+
if (available.length === 1) {
|
|
90
|
+
selectedInfo = available[0];
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
try {
|
|
94
|
+
const protocol = await select({
|
|
95
|
+
message: "Select protocol:",
|
|
96
|
+
choices: available.map((info) => ({
|
|
97
|
+
value: info.protocol,
|
|
98
|
+
name: info.protocol === "a2a" ? "A2A (Agent-to-Agent)" : "LangGraph",
|
|
99
|
+
description: info.name,
|
|
100
|
+
})),
|
|
101
|
+
theme: {
|
|
102
|
+
style: {
|
|
103
|
+
answer: (text) => chalk.rgb(199, 255, 142)(text),
|
|
104
|
+
highlight: (text) => chalk.rgb(199, 255, 142)(text),
|
|
105
|
+
description: (text) => chalk.rgb(199, 255, 142)(text),
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
selectedInfo = available.find((i) => i.protocol === protocol);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
if (error instanceof Error && error.name === "ExitPromptError") {
|
|
113
|
+
console.log();
|
|
114
|
+
context.log.dim("Cancelled.");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// ── Display agent info ─────────────────────────────────────
|
|
121
|
+
displayAgentInfo(selectedInfo);
|
|
122
|
+
// ── Connect ────────────────────────────────────────────────
|
|
123
|
+
const client = createClient(selectedInfo.protocol, baseUrl);
|
|
124
|
+
const connectSpinner = ora({
|
|
125
|
+
text: "Starting session...",
|
|
126
|
+
discardStdin: false,
|
|
127
|
+
}).start();
|
|
128
|
+
try {
|
|
129
|
+
await client.connect();
|
|
130
|
+
connectSpinner.succeed("Session started");
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
connectSpinner.fail("Failed to start session");
|
|
134
|
+
context.log.error(formatAgentError(error));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
console.log(chalk.dim("\nType your message. /exit to leave.\n"));
|
|
138
|
+
// ── Chat loop ──────────────────────────────────────────────
|
|
139
|
+
const rl = readline.createInterface({
|
|
140
|
+
input: process.stdin,
|
|
141
|
+
output: process.stdout,
|
|
142
|
+
});
|
|
143
|
+
const question = (prompt) => new Promise((resolve, reject) => {
|
|
144
|
+
const onClose = () => reject(new Error("closed"));
|
|
145
|
+
rl.once("close", onClose);
|
|
146
|
+
rl.question(prompt, (answer) => {
|
|
147
|
+
rl.removeListener("close", onClose);
|
|
148
|
+
resolve(answer);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
let running = true;
|
|
152
|
+
rl.on("SIGINT", () => {
|
|
153
|
+
running = false;
|
|
154
|
+
rl.close();
|
|
155
|
+
console.log();
|
|
156
|
+
context.log.dim("Exited chat mode.");
|
|
157
|
+
});
|
|
158
|
+
while (running) {
|
|
159
|
+
let userInput;
|
|
160
|
+
try {
|
|
161
|
+
userInput = await question(chatModePrompt());
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
const trimmed = userInput.trim();
|
|
167
|
+
if (!trimmed) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (trimmed === "/exit") {
|
|
171
|
+
rl.close();
|
|
172
|
+
console.log();
|
|
173
|
+
context.log.dim("Exited chat mode.");
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
const msgSpinner = ora({
|
|
177
|
+
text: "Thinking...",
|
|
178
|
+
discardStdin: false,
|
|
179
|
+
}).start();
|
|
180
|
+
try {
|
|
181
|
+
const response = await client.send(trimmed);
|
|
182
|
+
msgSpinner.stop();
|
|
183
|
+
console.log();
|
|
184
|
+
console.log(response);
|
|
185
|
+
console.log();
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
msgSpinner.fail("Request failed");
|
|
189
|
+
context.log.error(formatAgentError(error));
|
|
190
|
+
if (isNonRecoverableError(error)) {
|
|
191
|
+
rl.close();
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
console.log();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
59
198
|
export const chatCommand = {
|
|
60
199
|
name: "chat",
|
|
61
200
|
description: "Chat with a running agent via A2A or LangGraph",
|
|
62
201
|
usage: "/chat <url>",
|
|
63
202
|
order: 6,
|
|
64
203
|
handler: async (args, context) => {
|
|
65
|
-
// ── Validate URL argument ──────────────────────────────────
|
|
66
204
|
const rawUrl = args[0];
|
|
67
205
|
if (!rawUrl) {
|
|
68
206
|
context.log.error("Missing agent URL. Usage: /chat <url>");
|
|
@@ -77,138 +215,7 @@ export const chatCommand = {
|
|
|
77
215
|
context.log.error(`Invalid URL: ${rawUrl}`);
|
|
78
216
|
return;
|
|
79
217
|
}
|
|
80
|
-
|
|
81
|
-
const spinner = ora({
|
|
82
|
-
text: "Connecting to agent...",
|
|
83
|
-
discardStdin: false,
|
|
84
|
-
}).start();
|
|
85
|
-
let probeResult;
|
|
86
|
-
try {
|
|
87
|
-
probeResult = await probeAgent(baseUrl);
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
spinner.fail("Could not reach agent");
|
|
91
|
-
context.log.error(`Connection failed. Is the agent running at ${baseUrl}?`);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const available = [probeResult.a2a, probeResult.langgraph].filter((info) => info !== null);
|
|
95
|
-
if (available.length === 0) {
|
|
96
|
-
spinner.fail("No supported protocol detected");
|
|
97
|
-
context.log.error(`The agent at ${baseUrl} does not appear to support A2A or LangGraph.`);
|
|
98
|
-
context.log.dim("Checked: /.well-known/agent-card.json (A2A) and /info (LangGraph)");
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
spinner.succeed("Agent detected");
|
|
102
|
-
// ── Select protocol ────────────────────────────────────────
|
|
103
|
-
let selectedInfo;
|
|
104
|
-
if (available.length === 1) {
|
|
105
|
-
selectedInfo = available[0];
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
try {
|
|
109
|
-
const protocol = await select({
|
|
110
|
-
message: "Select protocol:",
|
|
111
|
-
choices: available.map((info) => ({
|
|
112
|
-
value: info.protocol,
|
|
113
|
-
name: info.protocol === "a2a" ? "A2A (Agent-to-Agent)" : "LangGraph",
|
|
114
|
-
description: info.name,
|
|
115
|
-
})),
|
|
116
|
-
theme: {
|
|
117
|
-
style: {
|
|
118
|
-
answer: (text) => chalk.rgb(199, 255, 142)(text),
|
|
119
|
-
highlight: (text) => chalk.rgb(199, 255, 142)(text),
|
|
120
|
-
description: (text) => chalk.rgb(199, 255, 142)(text),
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
selectedInfo = available.find((i) => i.protocol === protocol);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
if (error instanceof Error && error.name === "ExitPromptError") {
|
|
128
|
-
console.log();
|
|
129
|
-
context.log.dim("Cancelled.");
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
throw error;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// ── Display agent info ─────────────────────────────────────
|
|
136
|
-
displayAgentInfo(selectedInfo);
|
|
137
|
-
// ── Connect ────────────────────────────────────────────────
|
|
138
|
-
const client = createClient(selectedInfo.protocol, baseUrl);
|
|
139
|
-
const connectSpinner = ora({
|
|
140
|
-
text: "Starting session...",
|
|
141
|
-
discardStdin: false,
|
|
142
|
-
}).start();
|
|
143
|
-
try {
|
|
144
|
-
await client.connect();
|
|
145
|
-
connectSpinner.succeed("Session started");
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
connectSpinner.fail("Failed to start session");
|
|
149
|
-
context.log.error(formatAgentError(error));
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
console.log(chalk.dim("\nType your message. /exit to leave.\n"));
|
|
153
|
-
// ── Chat loop ──────────────────────────────────────────────
|
|
154
|
-
const rl = readline.createInterface({
|
|
155
|
-
input: process.stdin,
|
|
156
|
-
output: process.stdout,
|
|
157
|
-
});
|
|
158
|
-
const question = (prompt) => new Promise((resolve, reject) => {
|
|
159
|
-
const onClose = () => reject(new Error("closed"));
|
|
160
|
-
rl.once("close", onClose);
|
|
161
|
-
rl.question(prompt, (answer) => {
|
|
162
|
-
rl.removeListener("close", onClose);
|
|
163
|
-
resolve(answer);
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
let running = true;
|
|
167
|
-
rl.on("SIGINT", () => {
|
|
168
|
-
running = false;
|
|
169
|
-
rl.close();
|
|
170
|
-
console.log();
|
|
171
|
-
context.log.dim("Exited chat mode.");
|
|
172
|
-
});
|
|
173
|
-
while (running) {
|
|
174
|
-
let userInput;
|
|
175
|
-
try {
|
|
176
|
-
userInput = await question(chatPrompt());
|
|
177
|
-
}
|
|
178
|
-
catch {
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
const trimmed = userInput.trim();
|
|
182
|
-
if (!trimmed) {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
if (trimmed === "/exit") {
|
|
186
|
-
rl.close();
|
|
187
|
-
console.log();
|
|
188
|
-
context.log.dim("Exited chat mode.");
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
const msgSpinner = ora({
|
|
192
|
-
text: "Thinking...",
|
|
193
|
-
discardStdin: false,
|
|
194
|
-
}).start();
|
|
195
|
-
try {
|
|
196
|
-
const response = await client.send(trimmed);
|
|
197
|
-
msgSpinner.stop();
|
|
198
|
-
console.log();
|
|
199
|
-
console.log(response);
|
|
200
|
-
console.log();
|
|
201
|
-
}
|
|
202
|
-
catch (error) {
|
|
203
|
-
msgSpinner.fail("Request failed");
|
|
204
|
-
context.log.error(formatAgentError(error));
|
|
205
|
-
if (isNonRecoverableError(error)) {
|
|
206
|
-
rl.close();
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
console.log();
|
|
210
|
-
}
|
|
211
|
-
}
|
|
218
|
+
await runChatSession(baseUrl, context);
|
|
212
219
|
},
|
|
213
220
|
};
|
|
214
221
|
//# sourceMappingURL=chat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAOtB,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,SAAS,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"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"}
|