warden-code 0.1.5 → 1.0.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 (56) hide show
  1. package/README.md +16 -2
  2. package/dist/cli/commands/build.d.ts +3 -0
  3. package/dist/cli/commands/build.d.ts.map +1 -0
  4. package/dist/cli/commands/build.js +235 -0
  5. package/dist/cli/commands/build.js.map +1 -0
  6. package/dist/cli/commands/chat.d.ts +3 -0
  7. package/dist/cli/commands/chat.d.ts.map +1 -0
  8. package/dist/cli/commands/chat.js +214 -0
  9. package/dist/cli/commands/chat.js.map +1 -0
  10. package/dist/cli/commands/index.d.ts +2 -0
  11. package/dist/cli/commands/index.d.ts.map +1 -1
  12. package/dist/cli/commands/index.js +2 -0
  13. package/dist/cli/commands/index.js.map +1 -1
  14. package/dist/cli/commands/new.d.ts.map +1 -1
  15. package/dist/cli/commands/new.js +4 -1
  16. package/dist/cli/commands/new.js.map +1 -1
  17. package/dist/cli/index.js +5 -1
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/services/agent/a2a-client.d.ts +21 -0
  20. package/dist/cli/services/agent/a2a-client.d.ts.map +1 -0
  21. package/dist/cli/services/agent/a2a-client.js +78 -0
  22. package/dist/cli/services/agent/a2a-client.js.map +1 -0
  23. package/dist/cli/services/agent/langgraph-client.d.ts +10 -0
  24. package/dist/cli/services/agent/langgraph-client.d.ts.map +1 -0
  25. package/dist/cli/services/agent/langgraph-client.js +50 -0
  26. package/dist/cli/services/agent/langgraph-client.js.map +1 -0
  27. package/dist/cli/services/agent/probe.d.ts +3 -0
  28. package/dist/cli/services/agent/probe.d.ts.map +1 -0
  29. package/dist/cli/services/agent/probe.js +58 -0
  30. package/dist/cli/services/agent/probe.js.map +1 -0
  31. package/dist/cli/services/agent/types.d.ts +94 -0
  32. package/dist/cli/services/agent/types.d.ts.map +1 -0
  33. package/dist/cli/services/agent/types.js +2 -0
  34. package/dist/cli/services/agent/types.js.map +1 -0
  35. package/dist/cli/services/ai/anthropic.d.ts +8 -0
  36. package/dist/cli/services/ai/anthropic.d.ts.map +1 -0
  37. package/dist/cli/services/ai/anthropic.js +25 -0
  38. package/dist/cli/services/ai/anthropic.js.map +1 -0
  39. package/dist/cli/services/ai/context.d.ts +12 -0
  40. package/dist/cli/services/ai/context.d.ts.map +1 -0
  41. package/dist/cli/services/ai/context.js +72 -0
  42. package/dist/cli/services/ai/context.js.map +1 -0
  43. package/dist/cli/services/ai/openai.d.ts +8 -0
  44. package/dist/cli/services/ai/openai.d.ts.map +1 -0
  45. package/dist/cli/services/ai/openai.js +20 -0
  46. package/dist/cli/services/ai/openai.js.map +1 -0
  47. package/dist/cli/services/ai/provider.d.ts +15 -0
  48. package/dist/cli/services/ai/provider.d.ts.map +1 -0
  49. package/dist/cli/services/ai/provider.js +83 -0
  50. package/dist/cli/services/ai/provider.js.map +1 -0
  51. package/dist/cli/services/config.d.ts +8 -0
  52. package/dist/cli/services/config.d.ts.map +1 -0
  53. package/dist/cli/services/config.js +22 -0
  54. package/dist/cli/services/config.js.map +1 -0
  55. package/dist/templates/gitignore.template +1 -0
  56. package/package.json +3 -1
package/README.md CHANGED
@@ -29,6 +29,8 @@ This launches an interactive CLI where you can create new agents.
29
29
  | Command | Description |
30
30
  |---------|-------------|
31
31
  | `/new [path]` | Create a new agent interactively [optionally provide a path] |
32
+ | `/build [path]` | Enter AI-powered build mode to modify your agent via chat |
33
+ | `/chat <url>` | Chat with a running agent via A2A or LangGraph |
32
34
  | `/help` | Show available commands |
33
35
  | `/clear` | Clear the terminal |
34
36
  | `/exit` | Exit the CLI |
@@ -55,8 +57,8 @@ After generation, your agent will be ready at `src/agent.ts`.
55
57
  | **OpenAI + Multi-turn** | GPT-powered agent with conversation history |
56
58
 
57
59
  All options use `AgentServer` from `@wardenprotocol/agent-kit`, which exposes both:
58
- - **A2A Protocol** - JSON-RPC at `POST /`, discovery at `GET /.well-known/agent-card.json`
59
- - **LangGraph Protocol** - REST API at `/assistants`, `/threads`, `/runs`
60
+ - **A2A Protocol**
61
+ - **LangGraph Protocol**
60
62
 
61
63
  ## Generated Project Structure
62
64
 
@@ -82,6 +84,18 @@ npm run agent
82
84
 
83
85
  Your agent will be available at `http://localhost:3000`.
84
86
 
87
+ ## Build Mode
88
+
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
+
91
+ ## Chatting with an Agent
92
+
93
+ 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.
94
+
95
+ ## Hosting Your Agent
96
+
97
+ To host your agent on a server, you can use a cloud provider like AWS, Google Cloud, or Azure. You can also use a containerization platform like [Render.com](https://render.com/) to deploy your agent as a Docker container.
98
+
85
99
  ## License
86
100
 
87
101
  Apache-2.0
@@ -0,0 +1,3 @@
1
+ import type { SlashCommand } from "../types.js";
2
+ export declare const buildCommand: SlashCommand;
3
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +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;AA2H5D,eAAO,MAAM,YAAY,EAAE,YA0J1B,CAAC"}
@@ -0,0 +1,235 @@
1
+ import * as readline from "node:readline";
2
+ import * as fs from "node:fs/promises";
3
+ import * as path from "node:path";
4
+ import { select, password, input } from "@inquirer/prompts";
5
+ import chalk from "chalk";
6
+ import ora from "ora";
7
+ import { readConfig, writeConfig, } from "../services/config.js";
8
+ import { createProvider, formatAPIError, isNonRecoverableError, } from "../services/ai/provider.js";
9
+ import { buildProjectContext, parseResponse, applyChanges, SYSTEM_PROMPT, } from "../services/ai/context.js";
10
+ const promptTheme = {
11
+ style: {
12
+ answer: (text) => chalk.rgb(199, 255, 142)(text),
13
+ highlight: (text) => chalk.rgb(199, 255, 142)(text),
14
+ description: (text) => chalk.rgb(199, 255, 142)(text),
15
+ },
16
+ };
17
+ async function projectExists(cwd) {
18
+ try {
19
+ await fs.access(path.join(cwd, "src", "agent.ts"));
20
+ return true;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ const MODEL_CHOICES = {
27
+ openai: [
28
+ {
29
+ value: "gpt-5.2-codex",
30
+ name: "GPT-5.2 Codex",
31
+ description: "Latest — frontier coding with strong reasoning",
32
+ },
33
+ {
34
+ value: "gpt-5.1-codex",
35
+ name: "GPT-5.1 Codex",
36
+ description: "Stable — great balance of speed and quality",
37
+ },
38
+ {
39
+ value: "custom",
40
+ name: "Other",
41
+ description: "Enter a model name manually",
42
+ },
43
+ ],
44
+ anthropic: [
45
+ {
46
+ value: "claude-opus-4-6",
47
+ name: "Claude Opus 4.6",
48
+ description: "Most intelligent — best for complex coding and reasoning",
49
+ },
50
+ {
51
+ value: "claude-sonnet-4-5-20250929",
52
+ name: "Claude Sonnet 4.5",
53
+ description: "Fast and capable — great balance of speed and quality",
54
+ },
55
+ {
56
+ value: "custom",
57
+ name: "Other",
58
+ description: "Enter a model name manually",
59
+ },
60
+ ],
61
+ };
62
+ async function setupWizard(cwd) {
63
+ console.log();
64
+ console.log(chalk.bold("Build Mode Setup"));
65
+ console.log(chalk.dim("Configure your AI provider.\n"));
66
+ const provider = await select({
67
+ message: "Select AI provider:",
68
+ choices: [
69
+ {
70
+ value: "openai",
71
+ name: "OpenAI",
72
+ description: "GPT-5.2 Codex, GPT-5.1 Codex",
73
+ },
74
+ {
75
+ value: "anthropic",
76
+ name: "Anthropic",
77
+ description: "Claude Opus 4.6, Claude Sonnet 4.5",
78
+ },
79
+ ],
80
+ theme: promptTheme,
81
+ });
82
+ let model = await select({
83
+ message: "Select model:",
84
+ choices: MODEL_CHOICES[provider].map((c) => ({ ...c })),
85
+ theme: promptTheme,
86
+ });
87
+ if (model === "custom") {
88
+ model = await input({
89
+ message: "Enter model name:",
90
+ validate: (value) => (value.trim() ? true : "Model name is required"),
91
+ theme: promptTheme,
92
+ });
93
+ }
94
+ const apiKey = await password({
95
+ message: `Enter your ${provider === "openai" ? "OpenAI" : "Anthropic"} API key:`,
96
+ theme: promptTheme,
97
+ });
98
+ const config = { provider, model, apiKey };
99
+ await writeConfig(cwd, config);
100
+ return config;
101
+ }
102
+ function chatPrompt() {
103
+ return chalk.rgb(199, 255, 142)("build") + chalk.dim("> ");
104
+ }
105
+ export const buildCommand = {
106
+ name: "build",
107
+ description: "Enter AI-powered chat mode to build your agent",
108
+ usage: "/build [path]",
109
+ order: 5,
110
+ handler: async (args, context) => {
111
+ // Resolve project directory from optional path argument
112
+ const targetPath = args[0];
113
+ const projectDir = targetPath
114
+ ? path.resolve(context.cwd, targetPath)
115
+ : context.cwd;
116
+ // Check for scaffolded project
117
+ const hasProject = await projectExists(projectDir);
118
+ if (!hasProject) {
119
+ context.log.error(targetPath
120
+ ? `No agent project found in ${targetPath}. Run /new ${targetPath} to create one first.`
121
+ : "No agent project found. Run /new to create one first.");
122
+ return;
123
+ }
124
+ // Get or create config
125
+ let config = await readConfig(projectDir);
126
+ if (!config) {
127
+ try {
128
+ config = await setupWizard(projectDir);
129
+ console.log();
130
+ context.log.success("Configuration saved to .warden/config.json");
131
+ }
132
+ catch (error) {
133
+ if (error instanceof Error && error.name === "ExitPromptError") {
134
+ console.log();
135
+ context.log.dim("Cancelled.");
136
+ return;
137
+ }
138
+ throw error;
139
+ }
140
+ }
141
+ // Create provider
142
+ const provider = createProvider(config);
143
+ console.log();
144
+ console.log(chalk.bold("Build Mode") + chalk.dim(` (${config.model})`));
145
+ console.log(chalk.dim("Describe what you want your agent to do. Type /exit to leave.\n"));
146
+ // Chat loop
147
+ const messages = [];
148
+ const rl = readline.createInterface({
149
+ input: process.stdin,
150
+ output: process.stdout,
151
+ });
152
+ const question = (prompt) => new Promise((resolve, reject) => {
153
+ const onClose = () => reject(new Error("closed"));
154
+ rl.once("close", onClose);
155
+ rl.question(prompt, (answer) => {
156
+ rl.removeListener("close", onClose);
157
+ resolve(answer);
158
+ });
159
+ });
160
+ let running = true;
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
+ });
168
+ while (running) {
169
+ let userInput;
170
+ try {
171
+ userInput = await question(chatPrompt());
172
+ }
173
+ catch {
174
+ break;
175
+ }
176
+ const trimmed = userInput.trim();
177
+ if (!trimmed) {
178
+ continue;
179
+ }
180
+ if (trimmed === "/exit") {
181
+ rl.close();
182
+ console.log();
183
+ context.log.dim("Exited build mode.");
184
+ break;
185
+ }
186
+ // Build context from current project files
187
+ const projectContext = await buildProjectContext(projectDir);
188
+ // On first message, add system prompt with context
189
+ if (messages.length === 0) {
190
+ messages.push({
191
+ role: "system",
192
+ content: `${SYSTEM_PROMPT}\n\nCurrent project files:\n\n${projectContext}`,
193
+ });
194
+ }
195
+ else {
196
+ // Update system prompt with latest project state
197
+ messages[0] = {
198
+ role: "system",
199
+ content: `${SYSTEM_PROMPT}\n\nCurrent project files:\n\n${projectContext}`,
200
+ };
201
+ }
202
+ messages.push({ role: "user", content: trimmed });
203
+ const spinner = ora({ text: "Thinking...", discardStdin: false }).start();
204
+ try {
205
+ const response = await provider.chat(messages);
206
+ spinner.stop();
207
+ const { text, changes } = parseResponse(response);
208
+ // Apply file changes
209
+ if (changes.length > 0) {
210
+ const applied = await applyChanges(projectDir, changes);
211
+ console.log();
212
+ for (const file of applied) {
213
+ context.log.success(`Updated ${file}`);
214
+ }
215
+ }
216
+ // Show explanation
217
+ if (text) {
218
+ console.log();
219
+ console.log(text);
220
+ }
221
+ console.log();
222
+ }
223
+ catch (error) {
224
+ spinner.fail("Request failed");
225
+ context.log.error(formatAPIError(error));
226
+ if (isNonRecoverableError(error)) {
227
+ rl.close();
228
+ break;
229
+ }
230
+ console.log();
231
+ }
232
+ }
233
+ },
234
+ };
235
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SlashCommand } from "../types.js";
2
+ export declare const chatCommand: SlashCommand;
3
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAuE5D,eAAO,MAAM,WAAW,EAAE,YAqLzB,CAAC"}
@@ -0,0 +1,214 @@
1
+ import * as readline from "node:readline";
2
+ import { select } from "@inquirer/prompts";
3
+ import chalk from "chalk";
4
+ import ora from "ora";
5
+ import { probeAgent } from "../services/agent/probe.js";
6
+ import { A2AClient, AgentRequestError, AgentProtocolError, } from "../services/agent/a2a-client.js";
7
+ import { LangGraphClient } from "../services/agent/langgraph-client.js";
8
+ function chatPrompt() {
9
+ return chalk.rgb(199, 255, 142)("chat") + chalk.dim("> ");
10
+ }
11
+ function createClient(protocol, baseUrl) {
12
+ switch (protocol) {
13
+ case "a2a":
14
+ return new A2AClient(baseUrl);
15
+ case "langgraph":
16
+ return new LangGraphClient(baseUrl);
17
+ }
18
+ }
19
+ function displayAgentInfo(info) {
20
+ console.log();
21
+ console.log(chalk.bold(info.name) + chalk.dim(` (${info.protocol.toUpperCase()})`));
22
+ if (info.description) {
23
+ console.log(chalk.dim(info.description));
24
+ }
25
+ if (info.capabilities && info.capabilities.length > 0) {
26
+ console.log(chalk.dim("Capabilities: ") + info.capabilities.join(", "));
27
+ }
28
+ }
29
+ function formatAgentError(error) {
30
+ if (error instanceof AgentRequestError) {
31
+ const { status, body } = error;
32
+ if (status === 404)
33
+ return "Agent endpoint not found. Is the agent running?";
34
+ if (status === 500)
35
+ return `Agent internal error: ${body.slice(0, 200)}`;
36
+ if (status === 502 || status === 503)
37
+ return "Agent is unavailable. Try again shortly.";
38
+ if (status === 408 || status === 504)
39
+ return "Agent timed out. Try a simpler request.";
40
+ return `Agent returned HTTP ${status}: ${body.slice(0, 200)}`;
41
+ }
42
+ if (error instanceof AgentProtocolError) {
43
+ return `Protocol error (${error.code}): ${error.detail}`;
44
+ }
45
+ if (error instanceof TypeError && String(error.message).includes("fetch")) {
46
+ return "Connection refused. Is the agent running?";
47
+ }
48
+ if (error instanceof Error && error.name === "TimeoutError") {
49
+ return "Request timed out. The agent may be overloaded.";
50
+ }
51
+ return String(error);
52
+ }
53
+ function isNonRecoverableError(error) {
54
+ if (error instanceof TypeError && String(error.message).includes("fetch")) {
55
+ return true;
56
+ }
57
+ return false;
58
+ }
59
+ export const chatCommand = {
60
+ name: "chat",
61
+ description: "Chat with a running agent via A2A or LangGraph",
62
+ usage: "/chat <url>",
63
+ order: 6,
64
+ handler: async (args, context) => {
65
+ // ── Validate URL argument ──────────────────────────────────
66
+ const rawUrl = args[0];
67
+ if (!rawUrl) {
68
+ context.log.error("Missing agent URL. Usage: /chat <url>");
69
+ context.log.dim("Example: /chat http://localhost:3000");
70
+ return;
71
+ }
72
+ const baseUrl = rawUrl.replace(/\/+$/, "");
73
+ try {
74
+ new URL(baseUrl);
75
+ }
76
+ catch {
77
+ context.log.error(`Invalid URL: ${rawUrl}`);
78
+ return;
79
+ }
80
+ // ── Probe agent ────────────────────────────────────────────
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
+ }
212
+ },
213
+ };
214
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export { CommandRegistry } from "./registry.js";
2
2
  export { newCommand } from "./new.js";
3
+ export { buildCommand } from "./build.js";
4
+ export { chatCommand } from "./chat.js";
3
5
  export { createHelpCommand } from "./help.js";
4
6
  export { clearCommand } from "./clear.js";
5
7
  export { exitCommand } from "./exit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export { CommandRegistry } from "./registry.js";
2
2
  export { newCommand } from "./new.js";
3
+ export { buildCommand } from "./build.js";
4
+ export { chatCommand } from "./chat.js";
3
5
  export { createHelpCommand } from "./help.js";
4
6
  export { clearCommand } from "./clear.js";
5
7
  export { exitCommand } from "./exit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,aAAa,CAAC;AAmCrB,eAAO,MAAM,UAAU,EAAE,YA+NxB,CAAC"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,aAAa,CAAC;AAmCrB,eAAO,MAAM,UAAU,EAAE,YAoOxB,CAAC"}
@@ -199,7 +199,10 @@ export const newCommand = {
199
199
  context.log.dim(" Run npm install manually to install dependencies");
200
200
  }
201
201
  console.log();
202
- context.log.dim("Next steps (in a new terminal):");
202
+ context.log.dim("Next steps:");
203
+ context.log.dim(` /build${targetPath ? ` ${targetPath}` : ""} — enter AI chat mode to build your agent`);
204
+ console.log();
205
+ context.log.dim("Or build and run manually (in a new terminal):");
203
206
  if (targetPath) {
204
207
  context.log.dim(` cd ${targetPath}`);
205
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import * as readline from "node:readline";
3
3
  import { createContext } from "./context.js";
4
- import { CommandRegistry, createHelpCommand, clearCommand, exitCommand, newCommand, } from "./commands/index.js";
4
+ import { CommandRegistry, createHelpCommand, clearCommand, exitCommand, newCommand, buildCommand, chatCommand, } from "./commands/index.js";
5
5
  import { banner, prompt } from "./ui/format.js";
6
6
  async function main() {
7
7
  const context = createContext(process.cwd());
@@ -11,12 +11,16 @@ async function main() {
11
11
  registry.register(clearCommand);
12
12
  registry.register(exitCommand);
13
13
  registry.register(newCommand);
14
+ registry.register(buildCommand);
15
+ registry.register(chatCommand);
14
16
  // Display welcome banner and available commands
15
17
  console.log(banner());
16
18
  await registry.execute("/help", context);
19
+ const history = [];
17
20
  const createRl = () => readline.createInterface({
18
21
  input: process.stdin,
19
22
  output: process.stdout,
23
+ history,
20
24
  });
21
25
  let rl = createRl();
22
26
  let pausedForCommand = false;