@agntk/cli 0.2.0 → 0.3.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/dist/cli.d.ts CHANGED
@@ -3,12 +3,13 @@
3
3
  * @fileoverview CLI entry point for agntk — zero-config AI agent.
4
4
  *
5
5
  * Usage:
6
- * npx agntk --name "my-agent" "do something"
7
- * npx agntk --name "my-agent" --instructions "you are a deploy bot" "roll back staging"
8
- * npx agntk --name "my-agent" -i
6
+ * npx agntk "do something"
7
+ * npx agntk whats up
8
+ * npx agntk -n "my-agent" "fix the failing tests"
9
+ * npx agntk -n "my-agent" --instructions "you are a deploy bot" "roll back staging"
10
+ * npx agntk -n "my-agent" -i
9
11
  * npx agntk list
10
- * npx agntk "my-agent" "what were you working on?"
11
- * cat error.log | npx agntk --name "debugger" "explain these errors"
12
+ * cat error.log | npx agntk -n "debugger" "explain these errors"
12
13
  */
13
14
  import 'dotenv/config';
14
15
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAGH,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAGH,OAAO,eAAe,CAAC"}
package/dist/cli.js CHANGED
@@ -3,21 +3,22 @@
3
3
  * @fileoverview CLI entry point for agntk — zero-config AI agent.
4
4
  *
5
5
  * Usage:
6
- * npx agntk --name "my-agent" "do something"
7
- * npx agntk --name "my-agent" --instructions "you are a deploy bot" "roll back staging"
8
- * npx agntk --name "my-agent" -i
6
+ * npx agntk "do something"
7
+ * npx agntk whats up
8
+ * npx agntk -n "my-agent" "fix the failing tests"
9
+ * npx agntk -n "my-agent" --instructions "you are a deploy bot" "roll back staging"
10
+ * npx agntk -n "my-agent" -i
9
11
  * npx agntk list
10
- * npx agntk "my-agent" "what were you working on?"
11
- * cat error.log | npx agntk --name "debugger" "explain these errors"
12
+ * cat error.log | npx agntk -n "debugger" "explain these errors"
12
13
  */
13
14
  // Load .env files before anything else reads process.env
14
15
  import 'dotenv/config';
15
16
  import { createInterface } from 'node:readline';
16
- import { readdirSync, existsSync } from 'node:fs';
17
+ import { readdirSync, existsSync, writeFileSync, unlinkSync, readFileSync, statSync } from 'node:fs';
17
18
  import { resolve, join } from 'node:path';
18
19
  import { homedir } from 'node:os';
19
20
  import { getVersion } from './version.js';
20
- import { detectApiKey } from './config.js';
21
+ import { detectApiKey, loadDotenvFallback } from './config.js';
21
22
  // ============================================================================
22
23
  // Constants
23
24
  // ============================================================================
@@ -25,7 +26,7 @@ const AGENTS_DIR = resolve(homedir(), '.agntk', 'agents');
25
26
  function createColors(enabled) {
26
27
  if (!enabled) {
27
28
  const identity = (s) => s;
28
- return { dim: identity, bold: identity, cyan: identity, yellow: identity, green: identity, red: identity, magenta: identity, reset: '' };
29
+ return { dim: identity, bold: identity, cyan: identity, yellow: identity, green: identity, red: identity, magenta: identity, blue: identity, white: identity, reset: '' };
29
30
  }
30
31
  return {
31
32
  dim: (s) => `\x1b[2m${s}\x1b[22m`,
@@ -35,9 +36,40 @@ function createColors(enabled) {
35
36
  green: (s) => `\x1b[32m${s}\x1b[39m`,
36
37
  red: (s) => `\x1b[31m${s}\x1b[39m`,
37
38
  magenta: (s) => `\x1b[35m${s}\x1b[39m`,
39
+ blue: (s) => `\x1b[34m${s}\x1b[39m`,
40
+ white: (s) => `\x1b[97m${s}\x1b[39m`,
38
41
  reset: '\x1b[0m',
39
42
  };
40
43
  }
44
+ // ============================================================================
45
+ // Spinner — braille-pattern loading indicator
46
+ // ============================================================================
47
+ const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
48
+ const CLEAR_LINE = '\x1b[2K\r';
49
+ function createSpinner(stream, colors, enabled) {
50
+ let interval = null;
51
+ let frameIdx = 0;
52
+ return {
53
+ start(label) {
54
+ if (!enabled)
55
+ return;
56
+ this.stop();
57
+ frameIdx = 0;
58
+ interval = setInterval(() => {
59
+ const frame = SPINNER_FRAMES[frameIdx % SPINNER_FRAMES.length];
60
+ stream.write(`${CLEAR_LINE} ${colors.cyan(frame)} ${colors.dim(label)}`);
61
+ frameIdx++;
62
+ }, 80);
63
+ },
64
+ stop() {
65
+ if (interval) {
66
+ clearInterval(interval);
67
+ interval = null;
68
+ stream.write(CLEAR_LINE);
69
+ }
70
+ },
71
+ };
72
+ }
41
73
  function parseCLIArgs(argv) {
42
74
  const args = {
43
75
  name: null,
@@ -103,28 +135,12 @@ function parseCLIArgs(argv) {
103
135
  }
104
136
  }
105
137
  // Interpret positionals:
106
- // agntk "prompt" → name from --name flag, prompt from positional
107
- // agntk "agent-name" "prompt" first is agent name, second is prompt
108
- if (positionals.length === 1 && !args.name) {
109
- args.prompt = positionals[0];
110
- }
111
- else if (positionals.length === 1 && args.name) {
112
- args.prompt = positionals[0];
113
- }
114
- else if (positionals.length === 2) {
115
- if (!args.name) {
116
- args.name = positionals[0];
117
- }
118
- args.prompt = positionals[1];
119
- }
120
- else if (positionals.length > 2) {
121
- if (!args.name) {
122
- args.name = positionals[0];
123
- args.prompt = positionals.slice(1).join(' ');
124
- }
125
- else {
126
- args.prompt = positionals.join(' ');
127
- }
138
+ // All positionals join into the prompt. Use --name/-n for agent name.
139
+ // agntk "do something" prompt = "do something"
140
+ // agntk whats up → prompt = "whats up"
141
+ // agntk -n myagent fix the tests → name = "myagent", prompt = "fix the tests"
142
+ if (positionals.length > 0) {
143
+ args.prompt = positionals.join(' ');
128
144
  }
129
145
  return args;
130
146
  }
@@ -137,13 +153,13 @@ function printHelp() {
137
153
  agntk (${version}) — zero-config AI agent
138
154
 
139
155
  Usage:
140
- agntk --name <name> "prompt"
141
- agntk --name <name> -i
142
- agntk <name> "prompt"
156
+ agntk "prompt"
157
+ agntk -n <name> "prompt"
158
+ agntk -n <name> -i
143
159
  agntk list
144
160
 
145
161
  Options:
146
- -n, --name <name> Agent name (required for new agents)
162
+ -n, --name <name> Agent name (enables persistent memory)
147
163
  --instructions <text> What the agent does (injected as system prompt)
148
164
  -i, --interactive Interactive REPL mode
149
165
  --workspace <path> Workspace root (default: cwd)
@@ -157,36 +173,165 @@ function printHelp() {
157
173
  list List all known agents
158
174
 
159
175
  Examples:
160
- agntk --name "coder" "fix the failing tests"
161
- agntk --name "ops" --instructions "you manage k8s deploys" "roll back staging"
162
- agntk --name "coder" -i
163
- agntk "coder" "what were you working on?"
176
+ agntk "fix the failing tests"
177
+ agntk whats up
178
+ agntk -n coder "fix the failing tests"
179
+ agntk -n ops --instructions "you manage k8s deploys" "roll back staging"
180
+ agntk -n coder -i
164
181
  agntk list
165
- cat error.log | agntk --name "debugger" "explain"
182
+ cat error.log | agntk -n debugger "explain"
183
+
184
+ Provider (auto-detected):
185
+ Works out of the box with the free tier (Cerebras).
186
+ For your own key: export OPENROUTER_API_KEY=sk-or-...
187
+ For local models: install Ollama (auto-detected at localhost:11434)
166
188
  `);
167
189
  }
168
190
  // ============================================================================
169
191
  // List Agents
170
192
  // ============================================================================
193
+ /** Check if a PID is still alive */
194
+ function isPidAlive(pid) {
195
+ try {
196
+ process.kill(pid, 0);
197
+ return true;
198
+ }
199
+ catch {
200
+ return false;
201
+ }
202
+ }
203
+ /** Format a timestamp as relative time (e.g. "2m ago", "3d ago") */
204
+ function relativeTime(date) {
205
+ const now = Date.now();
206
+ const diffMs = now - date.getTime();
207
+ const seconds = Math.floor(diffMs / 1000);
208
+ if (seconds < 60)
209
+ return 'just now';
210
+ const minutes = Math.floor(seconds / 60);
211
+ if (minutes < 60)
212
+ return `${minutes}m ago`;
213
+ const hours = Math.floor(minutes / 60);
214
+ if (hours < 24)
215
+ return `${hours}h ago`;
216
+ const days = Math.floor(hours / 24);
217
+ if (days < 7)
218
+ return `${days}d ago`;
219
+ const weeks = Math.floor(days / 7);
220
+ if (weeks < 4)
221
+ return `${weeks}w ago`;
222
+ const months = Math.floor(days / 30);
223
+ return `${months}mo ago`;
224
+ }
225
+ /** Get lock info for an agent — returns PID if running, null if idle */
226
+ function getAgentLockInfo(agentDir) {
227
+ const lockPath = join(agentDir, '.lock');
228
+ if (!existsSync(lockPath))
229
+ return null;
230
+ try {
231
+ const content = readFileSync(lockPath, 'utf-8').trim();
232
+ const pid = parseInt(content, 10);
233
+ if (isNaN(pid))
234
+ return null;
235
+ const alive = isPidAlive(pid);
236
+ if (!alive) {
237
+ try {
238
+ unlinkSync(lockPath);
239
+ }
240
+ catch { /* ignore */ }
241
+ return null;
242
+ }
243
+ return { pid, alive };
244
+ }
245
+ catch {
246
+ return null;
247
+ }
248
+ }
249
+ /** Acquire a lockfile for an agent */
250
+ function acquireLock(name) {
251
+ const lockPath = join(AGENTS_DIR, name, '.lock');
252
+ try {
253
+ writeFileSync(lockPath, String(process.pid), 'utf-8');
254
+ }
255
+ catch {
256
+ // Agent dir may not exist yet — that's fine, it gets created by the SDK
257
+ }
258
+ }
259
+ /** Release a lockfile for an agent */
260
+ function releaseLock(name) {
261
+ const lockPath = join(AGENTS_DIR, name, '.lock');
262
+ try {
263
+ unlinkSync(lockPath);
264
+ }
265
+ catch {
266
+ // Already cleaned up
267
+ }
268
+ }
171
269
  function listAgents() {
270
+ const colors = createColors(process.stdout.isTTY ?? false);
172
271
  if (!existsSync(AGENTS_DIR)) {
173
- console.log('No agents found. Create one with: agntk --name "my-agent" "do something"');
272
+ console.log(colors.dim('No agents found. Create one with: agntk --name "my-agent" "do something"'));
174
273
  return;
175
274
  }
176
275
  const entries = readdirSync(AGENTS_DIR, { withFileTypes: true });
177
276
  const agents = entries.filter((e) => e.isDirectory());
178
277
  if (agents.length === 0) {
179
- console.log('No agents found. Create one with: agntk --name "my-agent" "do something"');
278
+ console.log(colors.dim('No agents found. Create one with: agntk --name "my-agent" "do something"'));
180
279
  return;
181
280
  }
182
- console.log(`\nKnown agents (${agents.length}):\n`);
281
+ console.log(`\n${colors.bold(`Agents (${agents.length})`)}\n`);
282
+ // Calculate max name length for alignment
283
+ const maxNameLen = Math.max(...agents.map((a) => a.name.length));
183
284
  for (const agent of agents) {
184
- const memoryPath = join(AGENTS_DIR, agent.name, 'memory.md');
185
- const contextPath = join(AGENTS_DIR, agent.name, 'context.md');
285
+ const agentDir = join(AGENTS_DIR, agent.name);
286
+ const memoryPath = join(agentDir, 'memory.md');
287
+ const contextPath = join(agentDir, 'context.md');
186
288
  const hasMemory = existsSync(memoryPath);
187
289
  const hasContext = existsSync(contextPath);
188
- const status = hasMemory || hasContext ? '●' : '○';
189
- console.log(` ${status} ${agent.name}${hasMemory ? ' (has memory)' : ''}`);
290
+ // Running detection
291
+ const lockInfo = getAgentLockInfo(agentDir);
292
+ const isRunning = lockInfo !== null;
293
+ // Last active — most recent mtime of any file in the agent dir
294
+ let lastActive = null;
295
+ try {
296
+ const agentFiles = readdirSync(agentDir);
297
+ for (const f of agentFiles) {
298
+ if (f === '.lock')
299
+ continue;
300
+ try {
301
+ const fStat = statSync(join(agentDir, f));
302
+ if (!lastActive || fStat.mtime > lastActive) {
303
+ lastActive = fStat.mtime;
304
+ }
305
+ }
306
+ catch { /* skip */ }
307
+ }
308
+ }
309
+ catch { /* skip */ }
310
+ // Build output line
311
+ const statusIcon = isRunning
312
+ ? colors.green('●')
313
+ : colors.dim('○');
314
+ const nameStr = isRunning
315
+ ? colors.green(colors.bold(agent.name))
316
+ : agent.name;
317
+ const padding = ' '.repeat(maxNameLen - agent.name.length + 2);
318
+ const parts = [];
319
+ if (isRunning) {
320
+ parts.push(colors.green(`running`) + colors.dim(` (pid ${lockInfo.pid})`));
321
+ }
322
+ else {
323
+ parts.push(colors.dim('idle'));
324
+ }
325
+ if (lastActive) {
326
+ parts.push(colors.dim(relativeTime(lastActive)));
327
+ }
328
+ if (hasMemory) {
329
+ parts.push(colors.cyan('🧠 memory'));
330
+ }
331
+ else if (hasContext) {
332
+ parts.push(colors.dim('has context'));
333
+ }
334
+ console.log(` ${statusIcon} ${nameStr}${padding}${parts.join(colors.dim(' · '))}`);
190
335
  }
191
336
  console.log('');
192
337
  }
@@ -194,7 +339,7 @@ function listAgents() {
194
339
  // Formatting Helpers
195
340
  // ============================================================================
196
341
  /** Compact summary of tool args — show key names and short values */
197
- function summarizeArgs(input) {
342
+ function summarizeArgs(input, colors) {
198
343
  if (!input || typeof input !== 'object')
199
344
  return '';
200
345
  const obj = input;
@@ -204,7 +349,7 @@ function summarizeArgs(input) {
204
349
  continue;
205
350
  const str = typeof val === 'string' ? val : JSON.stringify(val);
206
351
  const display = str.length > 60 ? str.slice(0, 57) + '...' : str;
207
- parts.push(`${key}=${display}`);
352
+ parts.push(`${colors.dim(key + '=')}${colors.yellow(display)}`);
208
353
  }
209
354
  return parts.join(' ');
210
355
  }
@@ -244,6 +389,7 @@ async function consumeStream(stream, opts) {
244
389
  const { output, status, level, colors } = opts;
245
390
  const quiet = level === 'quiet';
246
391
  const verbose = level === 'verbose';
392
+ const spinner = createSpinner(status, colors, !quiet && (opts.isTTY ?? false));
247
393
  const stats = {
248
394
  steps: 0,
249
395
  toolCalls: 0,
@@ -267,7 +413,7 @@ async function consumeStream(stream, opts) {
267
413
  stats.steps++;
268
414
  currentStepStart = Date.now();
269
415
  if (!quiet) {
270
- status.write(`\n${colors.dim(`── step ${stats.steps} ──────────────────────────────────────`)}\n`);
416
+ status.write(`\n${colors.dim('──')} ${colors.blue(colors.bold(`step ${stats.steps}`))} ${colors.dim('──────────────────────────────────────')}\n`);
271
417
  }
272
418
  break;
273
419
  }
@@ -294,13 +440,13 @@ async function consumeStream(stream, opts) {
294
440
  stats.outputTokens += tokensOut;
295
441
  const parts = [
296
442
  colors.dim(` ${formatDuration(elapsed)}`),
297
- colors.dim(`${tokensIn}→${tokensOut} tok`),
443
+ `${colors.cyan(String(tokensIn))}${colors.dim('→')}${colors.cyan(String(tokensOut))} ${colors.dim('tok')}`,
298
444
  ];
299
445
  if (reason === 'tool-calls') {
300
446
  parts.push(colors.dim('→ tool loop'));
301
447
  }
302
448
  else if (reason === 'stop') {
303
- parts.push(colors.green('done'));
449
+ parts.push(colors.green(colors.bold('done')));
304
450
  }
305
451
  else {
306
452
  parts.push(colors.yellow(reason));
@@ -312,7 +458,7 @@ async function consumeStream(stream, opts) {
312
458
  case 'reasoning-start': {
313
459
  if (!quiet) {
314
460
  inReasoning = true;
315
- status.write(colors.dim('\n ... '));
461
+ status.write(colors.magenta('\n 💭 '));
316
462
  }
317
463
  break;
318
464
  }
@@ -320,7 +466,7 @@ async function consumeStream(stream, opts) {
320
466
  if (!quiet && inReasoning) {
321
467
  const text = chunk.text ?? '';
322
468
  const compacted = text.replace(/\n/g, ' ');
323
- status.write(colors.dim(compacted));
469
+ status.write(colors.magenta(colors.dim(compacted)));
324
470
  }
325
471
  break;
326
472
  }
@@ -337,24 +483,26 @@ async function consumeStream(stream, opts) {
337
483
  const toolName = chunk.toolName;
338
484
  if (verbose) {
339
485
  const argsStr = chunk.input ? JSON.stringify(chunk.input, null, 2) : '';
340
- status.write(`\n ${colors.cyan('>')} ${colors.bold(toolName)}\n`);
486
+ status.write(`\n ${colors.cyan('')} ${colors.cyan(colors.bold(toolName))}\n`);
341
487
  if (argsStr) {
342
488
  const indented = argsStr.split('\n').map((l) => ` ${l}`).join('\n');
343
489
  status.write(`${colors.dim(indented)}\n`);
344
490
  }
345
491
  }
346
492
  else {
347
- const argsSummary = summarizeArgs(chunk.input);
493
+ const argsSummary = summarizeArgs(chunk.input, colors);
348
494
  const display = argsSummary
349
- ? ` ${colors.cyan('>')} ${colors.bold(toolName)} ${colors.dim(argsSummary)}`
350
- : ` ${colors.cyan('>')} ${colors.bold(toolName)}`;
495
+ ? ` ${colors.cyan('')} ${colors.cyan(colors.bold(toolName))} ${argsSummary}`
496
+ : ` ${colors.cyan('')} ${colors.cyan(colors.bold(toolName))}`;
351
497
  status.write(`${display}\n`);
352
498
  }
499
+ spinner.start(`running ${toolName}...`);
353
500
  }
354
501
  afterToolResult = false;
355
502
  break;
356
503
  }
357
504
  case 'tool-result': {
505
+ spinner.stop();
358
506
  const toolOutputRaw = typeof chunk.output === 'string' ? chunk.output : JSON.stringify(chunk.output);
359
507
  try {
360
508
  const parsed = JSON.parse(toolOutputRaw);
@@ -372,7 +520,7 @@ async function consumeStream(stream, opts) {
372
520
  displayOutput = displayOutput.slice(0, maxLen) + `\n... (${displayOutput.length} chars total)`;
373
521
  }
374
522
  const indented = displayOutput.split('\n').map((l) => ` ${l}`).join('\n');
375
- status.write(` ${colors.green('<')} ${colors.dim(toolName)} ${colors.dim('returned')}\n`);
523
+ status.write(` ${colors.green('')} ${colors.green(colors.dim(toolName))} ${colors.dim('returned')}\n`);
376
524
  status.write(`${colors.dim(indented)}\n`);
377
525
  }
378
526
  else {
@@ -381,19 +529,20 @@ async function consumeStream(stream, opts) {
381
529
  const truncated = firstLine.length > 100
382
530
  ? firstLine.slice(0, 97) + '...'
383
531
  : firstLine;
384
- status.write(` ${colors.green('<')} ${colors.dim(toolName + ': ' + truncated)}\n`);
532
+ status.write(` ${colors.green('')} ${colors.green(colors.dim(toolName + ': '))}${colors.dim(truncated)}\n`);
385
533
  }
386
534
  }
387
535
  afterToolResult = true;
388
536
  break;
389
537
  }
390
538
  case 'tool-error': {
539
+ spinner.stop();
391
540
  if (!quiet) {
392
541
  const toolName = chunk.toolName;
393
542
  const error = chunk.error instanceof Error
394
543
  ? chunk.error.message
395
544
  : String(chunk.error ?? 'unknown error');
396
- status.write(` ${colors.red('x')} ${colors.bold(toolName)} ${colors.red(error)}\n`);
545
+ status.write(` ${colors.red('')} ${colors.red(colors.bold(toolName))} ${colors.red(error)}\n`);
397
546
  }
398
547
  afterToolResult = true;
399
548
  break;
@@ -478,6 +627,7 @@ async function consumeStream(stream, opts) {
478
627
  break;
479
628
  }
480
629
  case 'finish': {
630
+ spinner.stop();
481
631
  if (!quiet) {
482
632
  const elapsed = Date.now() - stats.startTime;
483
633
  const totalUsage = chunk.totalUsage;
@@ -485,15 +635,20 @@ async function consumeStream(stream, opts) {
485
635
  stats.inputTokens = totalUsage.inputTokens ?? stats.inputTokens;
486
636
  stats.outputTokens = totalUsage.outputTokens ?? stats.outputTokens;
487
637
  }
488
- status.write(`\n${colors.dim(`── done ── ${stats.steps} step${stats.steps !== 1 ? 's' : ''}, ${stats.toolCalls} tool call${stats.toolCalls !== 1 ? 's' : ''}, ${stats.inputTokens}→${stats.outputTokens} tok, ${formatDuration(elapsed)} ──`)}\n`);
638
+ const stepLabel = `${stats.steps} step${stats.steps !== 1 ? 's' : ''}`;
639
+ const toolLabel = `${stats.toolCalls} tool call${stats.toolCalls !== 1 ? 's' : ''}`;
640
+ const tokLabel = `${colors.cyan(String(stats.inputTokens))}${colors.dim('→')}${colors.cyan(String(stats.outputTokens))} ${colors.dim('tok')}`;
641
+ const timeLabel = colors.dim(formatDuration(elapsed));
642
+ status.write(`\n${colors.dim('──')} ${colors.green(colors.bold('done'))} ${colors.dim('──')} ${colors.dim(stepLabel)} ${colors.dim('|')} ${colors.dim(toolLabel)} ${colors.dim('|')} ${tokLabel} ${colors.dim('|')} ${timeLabel} ${colors.dim('──')}\n`);
489
643
  }
490
644
  break;
491
645
  }
492
646
  case 'error': {
647
+ spinner.stop();
493
648
  const error = chunk.error instanceof Error
494
649
  ? chunk.error.message
495
650
  : String(chunk.error ?? 'unknown error');
496
- status.write(`\n${colors.red('Error:')} ${error}\n`);
651
+ status.write(`\n${colors.red(colors.bold('Error:'))} ${colors.red(error)}\n`);
497
652
  break;
498
653
  }
499
654
  default:
@@ -549,9 +704,15 @@ async function runOneShot(prompt, args) {
549
704
  workspaceRoot: args.workspace,
550
705
  maxSteps: args.maxSteps,
551
706
  });
707
+ // Acquire lockfile
708
+ acquireLock(args.name);
709
+ const cleanup = () => releaseLock(args.name);
710
+ process.on('exit', cleanup);
711
+ process.on('SIGINT', () => { cleanup(); process.exit(130); });
712
+ process.on('SIGTERM', () => { cleanup(); process.exit(143); });
552
713
  if (args.outputLevel !== 'quiet') {
553
714
  const toolCount = agent.getToolNames().length;
554
- process.stderr.write(`${colors.dim(`agntk | ${args.name} | ${toolCount} tools | workspace: ${args.workspace}`)}\n`);
715
+ process.stderr.write(`${colors.bold('agntk')} ${colors.dim('|')} ${colors.cyan(args.name)} ${colors.dim('|')} ${colors.dim(`${toolCount} tools`)} ${colors.dim('|')} ${colors.dim(`workspace: ${args.workspace}`)}\n`);
555
716
  }
556
717
  const result = await agent.stream({ prompt });
557
718
  await consumeStream(result.fullStream, {
@@ -560,6 +721,7 @@ async function runOneShot(prompt, args) {
560
721
  level: args.outputLevel,
561
722
  colors,
562
723
  maxSteps: args.maxSteps,
724
+ isTTY: process.stderr.isTTY ?? false,
563
725
  });
564
726
  const finalText = await result.text;
565
727
  if (finalText && !finalText.endsWith('\n')) {
@@ -584,16 +746,22 @@ async function runRepl(args) {
584
746
  workspaceRoot: args.workspace,
585
747
  maxSteps: args.maxSteps,
586
748
  });
749
+ // Acquire lockfile
750
+ acquireLock(args.name);
751
+ const cleanup = () => releaseLock(args.name);
752
+ process.on('exit', cleanup);
753
+ process.on('SIGINT', () => { cleanup(); process.exit(130); });
754
+ process.on('SIGTERM', () => { cleanup(); process.exit(143); });
587
755
  const version = getVersion();
588
756
  const output = process.stdout;
589
757
  const toolCount = agent.getToolNames().length;
590
- output.write(`\n${colors.bold('agntk')} ${colors.dim(`(${version})`)}\n`);
591
- output.write(`${colors.cyan(args.name)} ${colors.dim(`| ${toolCount} tools | memory: on`)}\n`);
758
+ output.write(`\n${colors.bold('agntk')} ${colors.dim(`(${version})`)}\n`);
759
+ output.write(`${colors.cyan(colors.bold(args.name))} ${colors.dim('|')} ${colors.dim(`${toolCount} tools`)} ${colors.dim('|')} ${colors.green('memory: on')}\n`);
592
760
  output.write(`${colors.dim('Type /help for commands, /exit or Ctrl+C to quit.')}\n\n`);
593
761
  const rl = createInterface({
594
762
  input: process.stdin,
595
763
  output: process.stdout,
596
- prompt: `${colors.cyan(args.name + '>')} `,
764
+ prompt: `${colors.cyan(colors.bold(args.name + ''))} `,
597
765
  terminal: true,
598
766
  });
599
767
  const history = [];
@@ -652,6 +820,7 @@ async function runRepl(args) {
652
820
  level: args.outputLevel,
653
821
  colors,
654
822
  maxSteps: args.maxSteps,
823
+ isTTY: process.stderr.isTTY ?? false,
655
824
  });
656
825
  const responseText = (await result.text) ?? '';
657
826
  if (responseText && !responseText.endsWith('\n')) {
@@ -697,7 +866,7 @@ async function runRepl(args) {
697
866
  rl.on('close', () => {
698
867
  closed = true;
699
868
  const finish = () => {
700
- output.write(`\n${colors.dim('Goodbye!')}\n`);
869
+ output.write(`\n${colors.dim('👋 Goodbye!')}\n`);
701
870
  resolvePromise();
702
871
  };
703
872
  if (busy) {
@@ -739,25 +908,37 @@ async function main() {
739
908
  // Validate: need a name
740
909
  if (!args.name) {
741
910
  if (!args.prompt && process.stdin.isTTY) {
742
- console.error('Error: No agent name provided.\n' +
743
- 'Usage: agntk --name "my-agent" "your prompt"\n' +
744
- ' agntk --name "my-agent" -i\n' +
911
+ console.error('Error: No prompt provided.\n' +
912
+ 'Usage: agntk "your prompt"\n' +
913
+ ' agntk -n <name> "your prompt"\n' +
914
+ ' agntk -n <name> -i\n' +
745
915
  ' agntk list\n' +
746
916
  ' agntk -h');
747
917
  process.exit(1);
748
918
  }
749
- // Default name if only prompt was given
919
+ // Default name if no --name flag was given
750
920
  args.name = 'default';
751
921
  }
752
- // Check API key
753
- const apiKeyResult = detectApiKey();
754
- if (!apiKeyResult) {
755
- console.error('Error: No API key found.\n\n' +
756
- ' 1. Get a key at https://openrouter.ai/keys\n' +
757
- ' 2. Add to your shell profile:\n\n' +
758
- ' export OPENROUTER_API_KEY=sk-or-...\n\n' +
759
- ' Then restart your terminal.');
760
- process.exit(1);
922
+ // Resolve provider (async cascade: BYOK → Ollama → Free Tier)
923
+ loadDotenvFallback();
924
+ const { resolveProvider, setResolvedProvider } = await import('@agntk/core');
925
+ const resolvedProvider = await resolveProvider();
926
+ setResolvedProvider(resolvedProvider);
927
+ if (args.outputLevel !== 'quiet') {
928
+ const providerLabel = resolvedProvider.isFree
929
+ ? `${resolvedProvider.source} usage limits apply`
930
+ : resolvedProvider.source;
931
+ process.stderr.write(` provider: ${providerLabel}\n`);
932
+ // Show model recommendation for Ollama users
933
+ if (resolvedProvider.ollamaModels) {
934
+ const rec = resolvedProvider.ollamaModels;
935
+ process.stderr.write(` models: ${rec.reason}\n`);
936
+ }
937
+ }
938
+ // Warn if workspace is the home directory (likely unintentional)
939
+ if (args.workspace === homedir()) {
940
+ process.stderr.write('Warning: Workspace is your home directory.\n' +
941
+ ' Run from a project directory, or use --workspace <path>\n\n');
761
942
  }
762
943
  // Interactive mode
763
944
  if (args.interactive) {
@@ -772,8 +953,9 @@ async function main() {
772
953
  }
773
954
  if (!prompt) {
774
955
  console.error('Error: No prompt provided.\n' +
775
- 'Usage: agntk --name "my-agent" "your prompt"\n' +
776
- ' agntk --name "my-agent" -i\n' +
956
+ 'Usage: agntk "your prompt"\n' +
957
+ ' agntk -n <name> "your prompt"\n' +
958
+ ' agntk -n <name> -i\n' +
777
959
  ' agntk -h');
778
960
  process.exit(1);
779
961
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -6,8 +6,14 @@ interface ApiKeyResult {
6
6
  provider: string;
7
7
  apiKey: string;
8
8
  }
9
+ /**
10
+ * Load ~/.agntk/.env as a fallback for API key persistence.
11
+ * Uses override: false so explicit env vars (from `export`) always win.
12
+ */
13
+ export declare function loadDotenvFallback(): void;
9
14
  /**
10
15
  * Detect API key from environment variables.
16
+ * Loads ~/.agntk/.env as fallback before checking.
11
17
  * Returns the first found key with its provider.
12
18
  */
13
19
  export declare function detectApiKey(): ApiKeyResult | null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,YAAY,GAAG,IAAI,CAQlD;AAMD,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CA0B9F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA0BzC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,YAAY,GAAG,IAAI,CAUlD;AAMD,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CA0B9F"}
package/dist/config.js CHANGED
@@ -4,15 +4,54 @@
4
4
  */
5
5
  import { existsSync, readFileSync } from 'node:fs';
6
6
  import { join } from 'node:path';
7
+ import { homedir } from 'node:os';
7
8
  const API_KEY_ENV_VARS = [
8
9
  { env: 'OPENROUTER_API_KEY', provider: 'openrouter' },
9
10
  { env: 'OPENAI_API_KEY', provider: 'openai' },
11
+ { env: 'CEREBRAS_API_KEY', provider: 'cerebras' },
10
12
  ];
13
+ let dotenvFallbackLoaded = false;
14
+ /**
15
+ * Load ~/.agntk/.env as a fallback for API key persistence.
16
+ * Uses override: false so explicit env vars (from `export`) always win.
17
+ */
18
+ export function loadDotenvFallback() {
19
+ if (dotenvFallbackLoaded)
20
+ return;
21
+ dotenvFallbackLoaded = true;
22
+ const globalEnvPath = join(homedir(), '.agntk', '.env');
23
+ if (!existsSync(globalEnvPath))
24
+ return;
25
+ try {
26
+ // Parse the .env file manually to avoid requiring dotenv at this level.
27
+ // dotenv/config already ran for cwd — this covers ~/.agntk/.env.
28
+ const content = readFileSync(globalEnvPath, 'utf-8');
29
+ for (const line of content.split('\n')) {
30
+ const trimmed = line.trim();
31
+ if (!trimmed || trimmed.startsWith('#'))
32
+ continue;
33
+ const eqIdx = trimmed.indexOf('=');
34
+ if (eqIdx === -1)
35
+ continue;
36
+ const key = trimmed.slice(0, eqIdx).trim();
37
+ const value = trimmed.slice(eqIdx + 1).trim();
38
+ // Don't override existing env vars
39
+ if (!process.env[key]) {
40
+ process.env[key] = value;
41
+ }
42
+ }
43
+ }
44
+ catch {
45
+ // Silently ignore read errors
46
+ }
47
+ }
11
48
  /**
12
49
  * Detect API key from environment variables.
50
+ * Loads ~/.agntk/.env as fallback before checking.
13
51
  * Returns the first found key with its provider.
14
52
  */
15
53
  export function detectApiKey() {
54
+ loadDotenvFallback();
16
55
  for (const { env, provider } of API_KEY_ENV_VARS) {
17
56
  const key = process.env[env];
18
57
  if (key && key.trim().length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC,MAAM,gBAAgB,GAA6C;IACjE,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,EAAE;IACrD,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAcD,MAAM,gBAAgB,GAAG;IACvB,mBAAmB;IACnB,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,YAA4B;IAC5E,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agntk/cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "CLI for agntk — portable AI agent you install and point at problems",
6
6
  "bin": {
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "dotenv": "^17.2.3",
21
- "@agntk/core": "0.2.0"
21
+ "@agntk/core": "0.3.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^20.17.19",