myuru 2.0.0-alpha.4 → 2.0.0-alpha.5
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/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +240 -76
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +42 -9
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAQA,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAQA,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAgIF,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoQ/D"}
|
|
@@ -4,25 +4,131 @@ import * as path from 'node:path';
|
|
|
4
4
|
import { Agent } from '../../core/agent.js';
|
|
5
5
|
import { builtinTools } from '../../tools/index.js';
|
|
6
6
|
import { detectProviders, resolveModel, defaultModelName } from '../resolve-model.js';
|
|
7
|
+
// ── .myuru.md project context (like CLAUDE.md, .goosehints) ──
|
|
8
|
+
function findProjectContext(cwd) {
|
|
9
|
+
const found = [];
|
|
10
|
+
let dir = cwd;
|
|
11
|
+
while (true) {
|
|
12
|
+
const candidate = path.join(dir, '.myuru.md');
|
|
13
|
+
if (fs.existsSync(candidate)) {
|
|
14
|
+
try {
|
|
15
|
+
const content = fs.readFileSync(candidate, 'utf-8').trim();
|
|
16
|
+
if (content)
|
|
17
|
+
found.push({ file: candidate, content });
|
|
18
|
+
}
|
|
19
|
+
catch { /* permission errors */ }
|
|
20
|
+
}
|
|
21
|
+
const parent = path.dirname(dir);
|
|
22
|
+
if (parent === dir)
|
|
23
|
+
break;
|
|
24
|
+
dir = parent;
|
|
25
|
+
}
|
|
26
|
+
if (found.length === 0)
|
|
27
|
+
return undefined;
|
|
28
|
+
// Root-first ordering (reverse since we walked cwd → root)
|
|
29
|
+
found.reverse();
|
|
30
|
+
return {
|
|
31
|
+
content: found.map(f => f.content).join('\n\n---\n\n'),
|
|
32
|
+
files: found.map(f => f.file),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// ── Last session context ──
|
|
36
|
+
function loadLastSession(cwd) {
|
|
37
|
+
const sessionFile = path.join(cwd, '.myuru', 'last-session.md');
|
|
38
|
+
if (!fs.existsSync(sessionFile))
|
|
39
|
+
return undefined;
|
|
40
|
+
try {
|
|
41
|
+
const content = fs.readFileSync(sessionFile, 'utf-8').trim();
|
|
42
|
+
return content || undefined;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function saveLastSession(cwd, messages, usage) {
|
|
49
|
+
if (messages.length === 0)
|
|
50
|
+
return;
|
|
51
|
+
const dir = path.join(cwd, '.myuru');
|
|
52
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
53
|
+
const userMessages = messages
|
|
54
|
+
.filter(m => m.role === 'user')
|
|
55
|
+
.map(m => typeof m.content === 'string' ? m.content : '');
|
|
56
|
+
const lines = [
|
|
57
|
+
'# Last Session',
|
|
58
|
+
`**Date**: ${new Date().toISOString()}`,
|
|
59
|
+
`**Tokens**: ${usage.totalTokens} | **Cost**: $${usage.estimatedCostUsd.toFixed(4)} | **Steps**: ${usage.stepCount}`,
|
|
60
|
+
'',
|
|
61
|
+
'## Topics Discussed',
|
|
62
|
+
...userMessages.slice(-10).map((m, i) => `${i + 1}. ${m.length > 120 ? m.slice(0, 120) + '...' : m}`),
|
|
63
|
+
];
|
|
64
|
+
fs.writeFileSync(path.join(dir, 'last-session.md'), lines.join('\n'), 'utf-8');
|
|
65
|
+
}
|
|
66
|
+
// ── System prompt builder ──
|
|
67
|
+
function buildSystemPrompt(cwd, fileTree, projectContext, lastSession) {
|
|
68
|
+
const parts = [
|
|
69
|
+
'You are a helpful coding assistant with full access to the file system and shell.',
|
|
70
|
+
'You can read, write, and edit files, search for files and content, and run shell commands.',
|
|
71
|
+
'Always use your tools to accomplish tasks. Do not ask the user to do things you can do yourself.',
|
|
72
|
+
'When editing files, read them first to understand the current content.',
|
|
73
|
+
'Be concise in your responses. Show what you did, not lengthy explanations of what you plan to do.',
|
|
74
|
+
];
|
|
75
|
+
if (projectContext) {
|
|
76
|
+
parts.push('', '--- Project Instructions ---', projectContext);
|
|
77
|
+
}
|
|
78
|
+
if (lastSession) {
|
|
79
|
+
parts.push('', '--- Previous Session ---', lastSession);
|
|
80
|
+
}
|
|
81
|
+
parts.push('', `Working directory: ${cwd}`, '', 'Project files:', fileTree);
|
|
82
|
+
return parts.join('\n');
|
|
83
|
+
}
|
|
84
|
+
// ── Directory scanner ──
|
|
85
|
+
function scanDirectory(dir, maxDepth, depth = 0, prefix = '') {
|
|
86
|
+
if (depth >= maxDepth)
|
|
87
|
+
return '';
|
|
88
|
+
const lines = [];
|
|
89
|
+
try {
|
|
90
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true })
|
|
91
|
+
.filter(e => !e.name.startsWith('.') && e.name !== 'node_modules' && e.name !== 'dist')
|
|
92
|
+
.sort((a, b) => {
|
|
93
|
+
if (a.isDirectory() !== b.isDirectory())
|
|
94
|
+
return a.isDirectory() ? -1 : 1;
|
|
95
|
+
return a.name.localeCompare(b.name);
|
|
96
|
+
});
|
|
97
|
+
for (const entry of entries.slice(0, 30)) {
|
|
98
|
+
const name = entry.isDirectory() ? `${entry.name}/` : entry.name;
|
|
99
|
+
lines.push(`${prefix}${name}`);
|
|
100
|
+
if (entry.isDirectory()) {
|
|
101
|
+
const sub = scanDirectory(path.join(dir, entry.name), maxDepth, depth + 1, prefix + ' ');
|
|
102
|
+
if (sub)
|
|
103
|
+
lines.push(sub);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch { /* permission errors */ }
|
|
108
|
+
return lines.filter(Boolean).join('\n');
|
|
109
|
+
}
|
|
110
|
+
// ── Session summary ──
|
|
111
|
+
function printSessionSummary(usage) {
|
|
112
|
+
console.log(`\n\x1b[90m Session: ${usage.totalTokens} tokens | ${usage.stepCount} steps | $${usage.estimatedCostUsd.toFixed(4)}\x1b[0m\n`);
|
|
113
|
+
}
|
|
114
|
+
// ── Main command ──
|
|
7
115
|
export async function chatCommand(opts) {
|
|
8
|
-
// Detect available providers
|
|
9
116
|
const available = detectProviders();
|
|
10
117
|
if (available.length === 0 && !opts.provider) {
|
|
11
118
|
console.error('\n No API key found. Set one of:');
|
|
12
119
|
console.error(' ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY\n');
|
|
13
120
|
process.exit(1);
|
|
14
121
|
}
|
|
15
|
-
// Resolve which provider/model to use
|
|
16
122
|
const provider = opts.provider ?? available[0].name;
|
|
17
123
|
const modelName = opts.model ?? defaultModelName(provider);
|
|
18
124
|
const model = await resolveModel(provider, opts.model);
|
|
19
125
|
const maxSteps = parseInt(opts.maxSteps ?? '25', 10);
|
|
20
126
|
const budget = opts.budget ? parseFloat(opts.budget) : undefined;
|
|
21
|
-
// Build system prompt with working directory context
|
|
22
127
|
const cwd = process.cwd();
|
|
23
128
|
const fileTree = scanDirectory(cwd, 2);
|
|
24
|
-
const
|
|
25
|
-
|
|
129
|
+
const projectCtx = findProjectContext(cwd);
|
|
130
|
+
const lastSession = loadLastSession(cwd);
|
|
131
|
+
const systemPrompt = buildSystemPrompt(cwd, fileTree, projectCtx?.content, lastSession);
|
|
26
132
|
const agent = Agent.create({
|
|
27
133
|
name: 'myuru',
|
|
28
134
|
model,
|
|
@@ -31,7 +137,7 @@ export async function chatCommand(opts) {
|
|
|
31
137
|
maxSteps,
|
|
32
138
|
budgetPerRun: budget,
|
|
33
139
|
});
|
|
34
|
-
//
|
|
140
|
+
// ── Banner ──
|
|
35
141
|
console.log('');
|
|
36
142
|
console.log(' \x1b[36mmyuru\x1b[0m interactive agent');
|
|
37
143
|
console.log(` Provider: ${provider} | Model: ${modelName}`);
|
|
@@ -39,9 +145,20 @@ export async function chatCommand(opts) {
|
|
|
39
145
|
console.log(` Available: ${available.map(p => p.name).join(', ')}`);
|
|
40
146
|
}
|
|
41
147
|
console.log(` Directory: ${cwd}`);
|
|
148
|
+
if (projectCtx) {
|
|
149
|
+
console.log(` \x1b[32mLoaded .myuru.md\x1b[0m (${projectCtx.files.length} file${projectCtx.files.length > 1 ? 's' : ''})`);
|
|
150
|
+
}
|
|
151
|
+
if (lastSession) {
|
|
152
|
+
console.log(' \x1b[32mLoaded last session context\x1b[0m');
|
|
153
|
+
}
|
|
42
154
|
console.log(` Tools: ${builtinTools.map(t => t.toolName).join(', ')}`);
|
|
43
|
-
console.log('
|
|
44
|
-
|
|
155
|
+
console.log('');
|
|
156
|
+
console.log(' \x1b[90mTry: "list all TODO comments in this project"');
|
|
157
|
+
console.log(' "explain what src/index.ts does"');
|
|
158
|
+
console.log(' "find and fix any TypeScript errors"');
|
|
159
|
+
console.log(' Commands: /help /clear /compact /cost /exit\x1b[0m');
|
|
160
|
+
console.log('');
|
|
161
|
+
// ── Session state ──
|
|
45
162
|
const messages = [];
|
|
46
163
|
const sessionUsage = {
|
|
47
164
|
totalInputTokens: 0,
|
|
@@ -50,42 +167,126 @@ export async function chatCommand(opts) {
|
|
|
50
167
|
estimatedCostUsd: 0,
|
|
51
168
|
stepCount: 0,
|
|
52
169
|
};
|
|
53
|
-
//
|
|
170
|
+
// Streaming state for Ctrl+C cancellation
|
|
171
|
+
let currentAbort = null;
|
|
172
|
+
let isStreaming = false;
|
|
173
|
+
// ── REPL ──
|
|
54
174
|
const rl = readline.createInterface({
|
|
55
175
|
input: process.stdin,
|
|
56
176
|
output: process.stdout,
|
|
57
177
|
prompt: '\x1b[36m> \x1b[0m',
|
|
58
178
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
179
|
+
// Ctrl+C: cancel streaming if active, otherwise exit
|
|
180
|
+
process.on('SIGINT', () => {
|
|
181
|
+
if (isStreaming && currentAbort) {
|
|
182
|
+
currentAbort.abort();
|
|
183
|
+
currentAbort = null;
|
|
184
|
+
isStreaming = false;
|
|
185
|
+
process.stdout.write('\n\x1b[33m (cancelled)\x1b[0m\n\n');
|
|
63
186
|
rl.prompt();
|
|
64
|
-
return;
|
|
65
187
|
}
|
|
66
|
-
|
|
67
|
-
|
|
188
|
+
else {
|
|
189
|
+
saveLastSession(cwd, messages, sessionUsage);
|
|
68
190
|
printSessionSummary(sessionUsage);
|
|
69
|
-
|
|
70
|
-
return;
|
|
191
|
+
process.exit(0);
|
|
71
192
|
}
|
|
72
|
-
|
|
73
|
-
|
|
193
|
+
});
|
|
194
|
+
rl.prompt();
|
|
195
|
+
rl.on('line', async (line) => {
|
|
196
|
+
const input = line.trim();
|
|
197
|
+
if (!input) {
|
|
74
198
|
rl.prompt();
|
|
75
199
|
return;
|
|
76
200
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
201
|
+
// ── Slash commands ──
|
|
202
|
+
if (input.startsWith('/')) {
|
|
203
|
+
const cmd = input.toLowerCase();
|
|
204
|
+
if (cmd === '/exit' || cmd === '/quit') {
|
|
205
|
+
saveLastSession(cwd, messages, sessionUsage);
|
|
206
|
+
printSessionSummary(sessionUsage);
|
|
207
|
+
rl.close();
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
if (cmd === '/cost') {
|
|
211
|
+
printSessionSummary(sessionUsage);
|
|
212
|
+
rl.prompt();
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (cmd === '/models') {
|
|
216
|
+
console.log(`\n Current: ${provider}/${modelName}`);
|
|
217
|
+
console.log(` Available providers: ${available.map(p => p.name).join(', ')}\n`);
|
|
218
|
+
rl.prompt();
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (cmd === '/clear') {
|
|
222
|
+
messages.length = 0;
|
|
223
|
+
console.log('\n \x1b[33mConversation cleared.\x1b[0m\n');
|
|
224
|
+
rl.prompt();
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (cmd === '/help') {
|
|
228
|
+
console.log('');
|
|
229
|
+
console.log(' \x1b[36mCommands:\x1b[0m');
|
|
230
|
+
console.log(' /help Show this help');
|
|
231
|
+
console.log(' /clear Clear conversation history');
|
|
232
|
+
console.log(' /compact Summarize conversation to save context');
|
|
233
|
+
console.log(' /cost Show session cost and token usage');
|
|
234
|
+
console.log(' /models Show current model and available providers');
|
|
235
|
+
console.log(' /exit Exit (also: /quit, Ctrl+D)');
|
|
236
|
+
console.log('');
|
|
237
|
+
console.log(' \x1b[36mKeys:\x1b[0m');
|
|
238
|
+
console.log(' Ctrl+C Cancel current response');
|
|
239
|
+
console.log(' Ctrl+D Exit');
|
|
240
|
+
console.log('');
|
|
241
|
+
rl.prompt();
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (cmd === '/compact') {
|
|
245
|
+
if (messages.length < 4) {
|
|
246
|
+
console.log('\n \x1b[90mNothing to compact yet.\x1b[0m\n');
|
|
247
|
+
rl.prompt();
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
console.log('\n \x1b[33mCompacting conversation...\x1b[0m');
|
|
251
|
+
try {
|
|
252
|
+
const compactPrompt = 'Summarize our conversation so far in concise bullet points. ' +
|
|
253
|
+
'Include: key topics, files modified, decisions made, and current state. ' +
|
|
254
|
+
'This replaces the conversation history to save context.';
|
|
255
|
+
const prevCount = messages.length;
|
|
256
|
+
const summaryMessages = [
|
|
257
|
+
...messages,
|
|
258
|
+
{ role: 'user', content: compactPrompt },
|
|
259
|
+
];
|
|
260
|
+
const result = await agent.chat(summaryMessages);
|
|
261
|
+
messages.length = 0;
|
|
262
|
+
messages.push({ role: 'user', content: 'Summary of our conversation so far:' }, { role: 'assistant', content: result.text });
|
|
263
|
+
if (result.usage) {
|
|
264
|
+
sessionUsage.totalInputTokens += result.usage.totalInputTokens;
|
|
265
|
+
sessionUsage.totalOutputTokens += result.usage.totalOutputTokens;
|
|
266
|
+
sessionUsage.totalTokens += result.usage.totalTokens;
|
|
267
|
+
sessionUsage.estimatedCostUsd += result.usage.estimatedCostUsd;
|
|
268
|
+
sessionUsage.stepCount += result.usage.stepCount;
|
|
269
|
+
}
|
|
270
|
+
console.log(` \x1b[32mCompacted: ${prevCount} messages → 2\x1b[0m\n`);
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
console.error(`\n\x1b[31m Compact failed: ${err.message}\x1b[0m\n`);
|
|
274
|
+
}
|
|
275
|
+
rl.prompt();
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
console.log(`\n \x1b[33mUnknown command: ${input}. Type /help for commands.\x1b[0m\n`);
|
|
80
279
|
rl.prompt();
|
|
81
280
|
return;
|
|
82
281
|
}
|
|
83
|
-
//
|
|
282
|
+
// ── User message ──
|
|
84
283
|
messages.push({ role: 'user', content: input });
|
|
85
|
-
// Stream the response
|
|
86
284
|
try {
|
|
87
285
|
process.stdout.write('\n');
|
|
286
|
+
currentAbort = new AbortController();
|
|
287
|
+
isStreaming = true;
|
|
88
288
|
const stream = agent.chatStream(messages, {
|
|
289
|
+
signal: currentAbort.signal,
|
|
89
290
|
onStep: (step) => {
|
|
90
291
|
if (step.toolCalls?.length) {
|
|
91
292
|
for (const tc of step.toolCalls) {
|
|
@@ -94,7 +295,6 @@ export async function chatCommand(opts) {
|
|
|
94
295
|
}
|
|
95
296
|
},
|
|
96
297
|
});
|
|
97
|
-
// Manual loop to capture the generator return value
|
|
98
298
|
let chatResult;
|
|
99
299
|
let next = await stream.next();
|
|
100
300
|
while (!next.done) {
|
|
@@ -102,11 +302,11 @@ export async function chatCommand(opts) {
|
|
|
102
302
|
next = await stream.next();
|
|
103
303
|
}
|
|
104
304
|
chatResult = next.value;
|
|
105
|
-
|
|
305
|
+
isStreaming = false;
|
|
306
|
+
currentAbort = null;
|
|
106
307
|
if (chatResult?.responseMessages) {
|
|
107
308
|
messages.push(...chatResult.responseMessages);
|
|
108
309
|
}
|
|
109
|
-
// Update session usage
|
|
110
310
|
if (chatResult?.usage) {
|
|
111
311
|
sessionUsage.totalInputTokens += chatResult.usage.totalInputTokens;
|
|
112
312
|
sessionUsage.totalOutputTokens += chatResult.usage.totalOutputTokens;
|
|
@@ -114,66 +314,30 @@ export async function chatCommand(opts) {
|
|
|
114
314
|
sessionUsage.estimatedCostUsd += chatResult.usage.estimatedCostUsd;
|
|
115
315
|
sessionUsage.stepCount += chatResult.usage.stepCount;
|
|
116
316
|
}
|
|
117
|
-
// Print cost line
|
|
118
317
|
const tokens = chatResult?.usage.totalTokens ?? 0;
|
|
119
318
|
const cost = (chatResult?.usage.estimatedCostUsd ?? 0).toFixed(4);
|
|
120
319
|
const session = sessionUsage.estimatedCostUsd.toFixed(4);
|
|
121
320
|
process.stdout.write(`\n\n\x1b[90m ${tokens} tokens | $${cost} | session: $${session}\x1b[0m\n\n`);
|
|
122
321
|
}
|
|
123
322
|
catch (err) {
|
|
124
|
-
|
|
323
|
+
isStreaming = false;
|
|
324
|
+
currentAbort = null;
|
|
325
|
+
if (err.name === 'AbortError') {
|
|
326
|
+
// Ctrl+C cancelled — remove the unanswered user message
|
|
327
|
+
if (messages.length > 0 && messages[messages.length - 1].role === 'user') {
|
|
328
|
+
messages.pop();
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
console.error(`\n\x1b[31m Error: ${err.message}\x1b[0m\n`);
|
|
333
|
+
}
|
|
125
334
|
}
|
|
126
335
|
rl.prompt();
|
|
127
336
|
});
|
|
128
337
|
rl.on('close', () => {
|
|
338
|
+
saveLastSession(cwd, messages, sessionUsage);
|
|
129
339
|
printSessionSummary(sessionUsage);
|
|
130
340
|
process.exit(0);
|
|
131
341
|
});
|
|
132
|
-
process.on('SIGINT', () => {
|
|
133
|
-
printSessionSummary(sessionUsage);
|
|
134
|
-
process.exit(0);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
function printSessionSummary(usage) {
|
|
138
|
-
console.log(`\n\x1b[90m Session: ${usage.totalTokens} tokens | ${usage.stepCount} steps | $${usage.estimatedCostUsd.toFixed(4)}\x1b[0m\n`);
|
|
139
|
-
}
|
|
140
|
-
function buildSystemPrompt(cwd, fileTree) {
|
|
141
|
-
return [
|
|
142
|
-
'You are a helpful coding assistant with full access to the file system and shell.',
|
|
143
|
-
'You can read, write, and edit files, search for files and content, and run shell commands.',
|
|
144
|
-
'Always use your tools to accomplish tasks. Do not ask the user to do things you can do yourself.',
|
|
145
|
-
'When editing files, read them first to understand the current content.',
|
|
146
|
-
'Be concise in your responses. Show what you did, not lengthy explanations of what you plan to do.',
|
|
147
|
-
'',
|
|
148
|
-
`Working directory: ${cwd}`,
|
|
149
|
-
'',
|
|
150
|
-
'Project files:',
|
|
151
|
-
fileTree,
|
|
152
|
-
].join('\n');
|
|
153
|
-
}
|
|
154
|
-
function scanDirectory(dir, maxDepth, depth = 0, prefix = '') {
|
|
155
|
-
if (depth >= maxDepth)
|
|
156
|
-
return '';
|
|
157
|
-
const lines = [];
|
|
158
|
-
try {
|
|
159
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true })
|
|
160
|
-
.filter(e => !e.name.startsWith('.') && e.name !== 'node_modules' && e.name !== 'dist')
|
|
161
|
-
.sort((a, b) => {
|
|
162
|
-
if (a.isDirectory() !== b.isDirectory())
|
|
163
|
-
return a.isDirectory() ? -1 : 1;
|
|
164
|
-
return a.name.localeCompare(b.name);
|
|
165
|
-
});
|
|
166
|
-
for (const entry of entries.slice(0, 30)) {
|
|
167
|
-
const name = entry.isDirectory() ? `${entry.name}/` : entry.name;
|
|
168
|
-
lines.push(`${prefix}${name}`);
|
|
169
|
-
if (entry.isDirectory()) {
|
|
170
|
-
const sub = scanDirectory(path.join(dir, entry.name), maxDepth, depth + 1, prefix + ' ');
|
|
171
|
-
if (sub)
|
|
172
|
-
lines.push(sub);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
catch { /* permission errors */ }
|
|
177
|
-
return lines.filter(Boolean).join('\n');
|
|
178
342
|
}
|
|
179
343
|
//# sourceMappingURL=chat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDtE"}
|
|
@@ -2,7 +2,20 @@ import * as fs from 'node:fs';
|
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
export async function initCommand(opts) {
|
|
4
4
|
const dir = path.resolve(opts.dir);
|
|
5
|
-
console.log(`\nMyUru
|
|
5
|
+
console.log(`\nMyUru — Initializing project in ${dir}\n`);
|
|
6
|
+
// Create .myuru.md project context file
|
|
7
|
+
const contextPath = path.join(dir, '.myuru.md');
|
|
8
|
+
if (!fs.existsSync(contextPath)) {
|
|
9
|
+
fs.writeFileSync(contextPath, PROJECT_CONTEXT_TEMPLATE);
|
|
10
|
+
console.log(' Created .myuru.md (project context — loaded every session)');
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
console.log(' .myuru.md already exists, skipping');
|
|
14
|
+
}
|
|
15
|
+
// Create .myuru/ state directory
|
|
16
|
+
const stateDir = path.join(dir, '.myuru');
|
|
17
|
+
fs.mkdirSync(stateDir, { recursive: true });
|
|
18
|
+
console.log(' Created .myuru/ (state directory)');
|
|
6
19
|
// Create config file
|
|
7
20
|
const configPath = path.join(dir, 'myuru.config.ts');
|
|
8
21
|
if (!fs.existsSync(configPath)) {
|
|
@@ -19,24 +32,44 @@ export async function initCommand(opts) {
|
|
|
19
32
|
fs.writeFileSync(path.join(agentsDir, 'researcher.ts'), AGENT_TEMPLATE);
|
|
20
33
|
console.log(' Created agents/researcher.ts');
|
|
21
34
|
}
|
|
22
|
-
// Create .myuru directory for state
|
|
23
|
-
const stateDir = path.join(dir, '.myuru');
|
|
24
|
-
fs.mkdirSync(stateDir, { recursive: true });
|
|
25
|
-
console.log(' Created .myuru/ (state directory)');
|
|
26
35
|
// Add to .gitignore if it exists
|
|
27
36
|
const gitignorePath = path.join(dir, '.gitignore');
|
|
28
37
|
if (fs.existsSync(gitignorePath)) {
|
|
29
38
|
const content = fs.readFileSync(gitignorePath, 'utf-8');
|
|
30
|
-
if (!content.includes('.myuru')) {
|
|
39
|
+
if (!content.includes('.myuru/')) {
|
|
31
40
|
fs.appendFileSync(gitignorePath, '\n# MyUru state\n.myuru/\n');
|
|
32
41
|
console.log(' Added .myuru/ to .gitignore');
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
console.log('\nDone! Next steps:');
|
|
36
|
-
console.log(' 1.
|
|
37
|
-
console.log(' 2.
|
|
38
|
-
console.log(' 3. Run: myuru
|
|
45
|
+
console.log(' 1. Edit .myuru.md to describe your project');
|
|
46
|
+
console.log(' 2. Set your API key: export ANTHROPIC_API_KEY=sk-ant-...');
|
|
47
|
+
console.log(' 3. Run: myuru\n');
|
|
39
48
|
}
|
|
49
|
+
const PROJECT_CONTEXT_TEMPLATE = `# Project Context
|
|
50
|
+
|
|
51
|
+
<!-- MyUru loads this file into every session automatically. -->
|
|
52
|
+
<!-- Describe your project so the agent understands your codebase. -->
|
|
53
|
+
|
|
54
|
+
## About This Project
|
|
55
|
+
|
|
56
|
+
<!-- What is this project? What does it do? -->
|
|
57
|
+
|
|
58
|
+
## Tech Stack
|
|
59
|
+
|
|
60
|
+
<!-- e.g. Next.js 15, Prisma, Tailwind CSS, PostgreSQL -->
|
|
61
|
+
|
|
62
|
+
## Important Rules
|
|
63
|
+
|
|
64
|
+
<!-- Things the agent should always or never do. Examples: -->
|
|
65
|
+
<!-- - Never modify package.json without asking -->
|
|
66
|
+
<!-- - Use the existing logger in src/lib/logger.ts -->
|
|
67
|
+
<!-- - All API routes go in src/app/api/ -->
|
|
68
|
+
|
|
69
|
+
## Key Files
|
|
70
|
+
|
|
71
|
+
<!-- Important files the agent should know about -->
|
|
72
|
+
`;
|
|
40
73
|
const CONFIG_TEMPLATE = `import { type AgentConfig } from 'myuru';
|
|
41
74
|
|
|
42
75
|
// MyUru Configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -7,7 +7,7 @@ const program = new Command();
|
|
|
7
7
|
program
|
|
8
8
|
.name('myuru')
|
|
9
9
|
.description('AI agent with file system and shell access. Works with any provider.')
|
|
10
|
-
.version('2.0.0-alpha.
|
|
10
|
+
.version('2.0.0-alpha.5');
|
|
11
11
|
program
|
|
12
12
|
.command('chat', { isDefault: true })
|
|
13
13
|
.description('Start an interactive chat session (default)')
|
package/package.json
CHANGED