@datachonk/cli 0.1.0 → 0.2.2

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.
@@ -2,56 +2,206 @@ import { Command } from "commander";
2
2
  import chalk from "chalk";
3
3
  import ora from "ora";
4
4
  import * as readline from "readline";
5
- import { loadConfig } from "../utils/config.js";
5
+ import { readdirSync, readFileSync, statSync, existsSync, writeFileSync, mkdirSync } from "fs";
6
+ import { join, dirname } from "path";
7
+ import { loadConfig, getApiUrl } from "../utils/config.js";
8
+ // Slash commands for enhanced functionality
9
+ const slashCommands = [
10
+ {
11
+ name: "help",
12
+ description: "Show available commands",
13
+ handler: async () => {
14
+ return `
15
+ ${chalk.bold("Available Commands:")}
16
+ ${chalk.cyan("/help")} Show this help message
17
+ ${chalk.cyan("/clear")} Clear conversation history
18
+ ${chalk.cyan("/context <path>")} Load a file or directory as context
19
+ ${chalk.cyan("/generate <type>")} Generate dbt code (staging, intermediate, mart, test)
20
+ ${chalk.cyan("/review <file>")} Get a code review of a file
21
+ ${chalk.cyan("/explain <file>")} Explain what a model does
22
+ ${chalk.cyan("/optimize <file>")} Get optimization suggestions
23
+ ${chalk.cyan("/test <model>")} Generate tests for a model
24
+ ${chalk.cyan("/docs <model>")} Generate documentation
25
+ ${chalk.cyan("/save <file>")} Save the last code block to a file
26
+ ${chalk.cyan("/export")} Export conversation to markdown
27
+ ${chalk.cyan("/exit")} Exit chat
28
+ `;
29
+ },
30
+ },
31
+ {
32
+ name: "clear",
33
+ description: "Clear conversation history",
34
+ handler: async (_, ctx) => {
35
+ ctx.messages.length = 0;
36
+ return chalk.green("Conversation cleared.");
37
+ },
38
+ },
39
+ {
40
+ name: "context",
41
+ description: "Load context from a file or directory",
42
+ handler: async (args, ctx) => {
43
+ const path = args.trim() || ".";
44
+ try {
45
+ const stat = statSync(path);
46
+ let content = "";
47
+ if (stat.isDirectory()) {
48
+ const files = readdirSync(path).filter(f => f.endsWith(".sql") || f.endsWith(".yml") || f.endsWith(".yaml"));
49
+ for (const file of files.slice(0, 10)) {
50
+ const fileContent = readFileSync(join(path, file), "utf-8");
51
+ content += `\n--- ${file} ---\n${fileContent}\n`;
52
+ }
53
+ ctx.projectPath = path;
54
+ }
55
+ else {
56
+ content = readFileSync(path, "utf-8");
57
+ ctx.currentFile = path;
58
+ }
59
+ ctx.messages.push({
60
+ role: "user",
61
+ content: `Here is context from ${path}:\n\n${content}\n\nPlease keep this in mind.`,
62
+ });
63
+ ctx.messages.push({
64
+ role: "assistant",
65
+ content: "I've loaded the context. How can I help?",
66
+ });
67
+ return chalk.green(`Loaded context from ${path}`);
68
+ }
69
+ catch (error) {
70
+ return chalk.red(`Failed to load context: ${error instanceof Error ? error.message : "Unknown error"}`);
71
+ }
72
+ },
73
+ },
74
+ {
75
+ name: "save",
76
+ description: "Save the last code block to a file",
77
+ handler: async (args, ctx) => {
78
+ const filePath = args.trim();
79
+ if (!filePath) {
80
+ return chalk.red("Usage: /save <file-path>");
81
+ }
82
+ // Find last code block in assistant messages
83
+ for (let i = ctx.messages.length - 1; i >= 0; i--) {
84
+ const msg = ctx.messages[i];
85
+ if (msg.role === "assistant") {
86
+ const codeMatch = msg.content.match(/```(?:\w+)?\n([\s\S]*?)```/);
87
+ if (codeMatch) {
88
+ const code = codeMatch[1];
89
+ const dir = dirname(filePath);
90
+ if (!existsSync(dir)) {
91
+ mkdirSync(dir, { recursive: true });
92
+ }
93
+ writeFileSync(filePath, code);
94
+ return chalk.green(`Saved to ${filePath}`);
95
+ }
96
+ }
97
+ }
98
+ return chalk.yellow("No code block found in recent messages.");
99
+ },
100
+ },
101
+ {
102
+ name: "export",
103
+ description: "Export conversation to markdown",
104
+ handler: async (args, ctx) => {
105
+ const filePath = args.trim() || `datachonk-chat-${Date.now()}.md`;
106
+ let markdown = "# DataChonk Chat Export\n\n";
107
+ markdown += `_Exported: ${new Date().toISOString()}_\n\n---\n\n`;
108
+ for (const msg of ctx.messages) {
109
+ if (msg.role === "user") {
110
+ markdown += `## You\n\n${msg.content}\n\n`;
111
+ }
112
+ else {
113
+ markdown += `## Chonk\n\n${msg.content}\n\n`;
114
+ }
115
+ }
116
+ writeFileSync(filePath, markdown);
117
+ return chalk.green(`Exported to ${filePath}`);
118
+ },
119
+ },
120
+ ];
6
121
  export const chatCommand = new Command("chat")
7
- .description("Interactive AI chat for dbt help and code generation")
122
+ .description("Interactive AI chat with Chonk - your dbt expert")
8
123
  .option("-c, --context <path>", "Include a file or directory as context")
9
- .option("--model <model>", "AI model to use", "gpt-4o")
124
+ .option("-p, --project <id>", "Use a specific DataChonk project for context")
125
+ .option("-s, --stream", "Enable streaming responses", true)
126
+ .option("--no-stream", "Disable streaming responses")
10
127
  .action(async (options) => {
11
128
  const config = loadConfig();
12
129
  const apiKey = config.ai?.apiKey || process.env.DATACHONK_API_KEY;
13
130
  if (!apiKey) {
14
131
  console.log(chalk.red("No API key found."));
15
- console.log(chalk.yellow("Run: datachonk config set apiKey <your-key>"));
16
- console.log(chalk.yellow("Or set DATACHONK_API_KEY environment variable"));
132
+ console.log(chalk.yellow("Run: datachonk auth login"));
133
+ console.log(chalk.yellow("Or: datachonk config set apiKey <your-key>"));
17
134
  process.exit(1);
18
135
  }
19
- console.log(chalk.cyan.bold("\n🐕 DataChonk AI Assistant"));
20
- console.log(chalk.gray("Your expert dbt companion. Type 'exit' to quit.\n"));
21
- const messages = [];
136
+ console.log(chalk.hex("#E8A54B").bold("\n DataChonk AI Chat"));
137
+ console.log(chalk.gray(" Your expert dbt companion. Type /help for commands.\n"));
138
+ const context = {
139
+ messages: [],
140
+ projectPath: options.context,
141
+ projectId: options.project,
142
+ warehouse: config.warehouse,
143
+ };
22
144
  // Load context if provided
23
145
  if (options.context) {
24
146
  const spinner = ora("Loading context...").start();
25
147
  try {
26
- const fs = await import("fs");
27
- const path = await import("path");
28
- const contextPath = path.resolve(options.context);
29
- const stat = fs.statSync(contextPath);
148
+ const contextPath = options.context;
149
+ const stat = statSync(contextPath);
30
150
  let contextContent = "";
31
151
  if (stat.isDirectory()) {
32
- const files = fs.readdirSync(contextPath).filter(f => f.endsWith(".sql") || f.endsWith(".yml") || f.endsWith(".yaml"));
152
+ const files = readdirSync(contextPath).filter((f) => f.endsWith(".sql") || f.endsWith(".yml") || f.endsWith(".yaml"));
33
153
  for (const file of files.slice(0, 10)) {
34
- const content = fs.readFileSync(path.join(contextPath, file), "utf-8");
154
+ const content = readFileSync(join(contextPath, file), "utf-8");
35
155
  contextContent += `\n--- ${file} ---\n${content}\n`;
36
156
  }
37
157
  }
38
158
  else {
39
- contextContent = fs.readFileSync(contextPath, "utf-8");
159
+ contextContent = readFileSync(contextPath, "utf-8");
160
+ context.currentFile = contextPath;
40
161
  }
41
- messages.push({
162
+ context.messages.push({
42
163
  role: "user",
43
164
  content: `Here is my dbt project context:\n\n${contextContent}\n\nPlease keep this in mind for our conversation.`
44
165
  });
45
- messages.push({
166
+ context.messages.push({
46
167
  role: "assistant",
47
168
  content: "I've loaded your dbt project context. I can see your models and configuration. How can I help you today?"
48
169
  });
49
170
  spinner.succeed(`Loaded context from ${options.context}`);
50
171
  }
51
- catch (error) {
172
+ catch {
52
173
  spinner.fail("Failed to load context");
53
174
  }
54
175
  }
176
+ // Load project context if provided
177
+ if (options.project) {
178
+ const spinner = ora("Loading project...").start();
179
+ try {
180
+ const apiUrl = getApiUrl();
181
+ const response = await fetch(`${apiUrl}/api/cli/projects/${options.project}`, {
182
+ headers: { "Authorization": `Bearer ${apiKey}` },
183
+ });
184
+ if (response.ok) {
185
+ const data = await response.json();
186
+ context.warehouse = data.project.warehouse;
187
+ context.messages.push({
188
+ role: "user",
189
+ content: `I'm working on the "${data.project.name}" project (${data.project.warehouse}). It has ${data.chonks?.length || 0} chonks defined.`,
190
+ });
191
+ context.messages.push({
192
+ role: "assistant",
193
+ content: `Great! I'm familiar with your "${data.project.name}" project. How can I help you today?`,
194
+ });
195
+ spinner.succeed(`Loaded project: ${data.project.name}`);
196
+ }
197
+ else {
198
+ spinner.fail("Project not found");
199
+ }
200
+ }
201
+ catch {
202
+ spinner.fail("Failed to load project");
203
+ }
204
+ }
55
205
  const rl = readline.createInterface({
56
206
  input: process.stdin,
57
207
  output: process.stdout,
@@ -59,8 +209,8 @@ export const chatCommand = new Command("chat")
59
209
  const prompt = () => {
60
210
  rl.question(chalk.green("\nYou: "), async (input) => {
61
211
  const trimmed = input.trim();
62
- if (trimmed.toLowerCase() === "exit" || trimmed.toLowerCase() === "quit") {
63
- console.log(chalk.cyan("\nGoodbye! Happy modeling! 🐕\n"));
212
+ if (trimmed.toLowerCase() === "exit" || trimmed.toLowerCase() === "quit" || trimmed === "/exit") {
213
+ console.log(chalk.hex("#E8A54B")("\nHappy modeling!\n"));
64
214
  rl.close();
65
215
  return;
66
216
  }
@@ -68,37 +218,104 @@ export const chatCommand = new Command("chat")
68
218
  prompt();
69
219
  return;
70
220
  }
71
- messages.push({ role: "user", content: trimmed });
72
- const spinner = ora("Thinking...").start();
73
- try {
74
- const { getApiUrl } = await import("../utils/config.js");
75
- const baseUrl = getApiUrl();
76
- const response = await fetch(`${baseUrl}/api/cli/chat`, {
77
- method: "POST",
78
- headers: {
79
- "Content-Type": "application/json",
80
- "Authorization": `Bearer ${apiKey}`,
81
- },
82
- body: JSON.stringify({
83
- messages,
84
- stream: false,
85
- context: options.context ? {
86
- projectPath: options.context,
87
- } : undefined,
88
- }),
89
- });
90
- if (!response.ok) {
91
- throw new Error(`API error: ${response.status}`);
221
+ // Handle slash commands
222
+ if (trimmed.startsWith("/")) {
223
+ const [cmd, ...args] = trimmed.slice(1).split(" ");
224
+ const command = slashCommands.find(c => c.name === cmd.toLowerCase());
225
+ if (command) {
226
+ const result = await command.handler(args.join(" "), context);
227
+ if (result) {
228
+ console.log(result);
229
+ }
230
+ prompt();
231
+ return;
232
+ }
233
+ else {
234
+ console.log(chalk.yellow(`Unknown command: /${cmd}. Type /help for available commands.`));
235
+ prompt();
236
+ return;
92
237
  }
93
- const data = await response.json();
94
- const assistantMessage = data.content || data.message || "I couldn't generate a response.";
95
- messages.push({ role: "assistant", content: assistantMessage });
96
- spinner.stop();
97
- console.log(chalk.cyan("\nDataChonk: ") + formatResponse(assistantMessage));
98
238
  }
99
- catch (error) {
100
- spinner.fail("Failed to get response");
101
- console.log(chalk.red(`Error: ${error instanceof Error ? error.message : "Unknown error"}`));
239
+ context.messages.push({ role: "user", content: trimmed });
240
+ const baseUrl = getApiUrl();
241
+ if (options.stream) {
242
+ // Streaming response
243
+ process.stdout.write(chalk.cyan("\nChonk: "));
244
+ try {
245
+ const response = await fetch(`${baseUrl}/api/cli/chat`, {
246
+ method: "POST",
247
+ headers: {
248
+ "Content-Type": "application/json",
249
+ "Authorization": `Bearer ${apiKey}`,
250
+ },
251
+ body: JSON.stringify({
252
+ messages: context.messages,
253
+ stream: true,
254
+ context: {
255
+ projectPath: context.projectPath,
256
+ projectId: context.projectId,
257
+ warehouse: context.warehouse,
258
+ currentFile: context.currentFile,
259
+ },
260
+ }),
261
+ });
262
+ if (!response.ok) {
263
+ throw new Error(`API error: ${response.status}`);
264
+ }
265
+ const reader = response.body?.getReader();
266
+ const decoder = new TextDecoder();
267
+ let fullResponse = "";
268
+ if (reader) {
269
+ while (true) {
270
+ const { done, value } = await reader.read();
271
+ if (done)
272
+ break;
273
+ const chunk = decoder.decode(value, { stream: true });
274
+ fullResponse += chunk;
275
+ process.stdout.write(chunk);
276
+ }
277
+ }
278
+ context.messages.push({ role: "assistant", content: fullResponse });
279
+ console.log(); // New line after streaming
280
+ }
281
+ catch (error) {
282
+ console.log(chalk.red(`\nError: ${error instanceof Error ? error.message : "Unknown error"}`));
283
+ }
284
+ }
285
+ else {
286
+ // Non-streaming response
287
+ const spinner = ora("Thinking...").start();
288
+ try {
289
+ const response = await fetch(`${baseUrl}/api/cli/chat`, {
290
+ method: "POST",
291
+ headers: {
292
+ "Content-Type": "application/json",
293
+ "Authorization": `Bearer ${apiKey}`,
294
+ },
295
+ body: JSON.stringify({
296
+ messages: context.messages,
297
+ stream: false,
298
+ context: {
299
+ projectPath: context.projectPath,
300
+ projectId: context.projectId,
301
+ warehouse: context.warehouse,
302
+ currentFile: context.currentFile,
303
+ },
304
+ }),
305
+ });
306
+ if (!response.ok) {
307
+ throw new Error(`API error: ${response.status}`);
308
+ }
309
+ const data = await response.json();
310
+ const assistantMessage = data.content || data.message || "I couldn't generate a response.";
311
+ context.messages.push({ role: "assistant", content: assistantMessage });
312
+ spinner.stop();
313
+ console.log(chalk.cyan("\nChonk: ") + formatResponse(assistantMessage));
314
+ }
315
+ catch (error) {
316
+ spinner.fail("Failed to get response");
317
+ console.log(chalk.red(`Error: ${error instanceof Error ? error.message : "Unknown error"}`));
318
+ }
102
319
  }
103
320
  prompt();
104
321
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const projectsCommand: Command;
3
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,eAAO,MAAM,eAAe,SACe,CAAC"}