@praveencs/agent 0.1.1 → 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.
Files changed (35) hide show
  1. package/dist/src/cli/commands/daemon.d.ts.map +1 -1
  2. package/dist/src/cli/commands/daemon.js +147 -7
  3. package/dist/src/cli/commands/daemon.js.map +1 -1
  4. package/dist/src/cli/commands/goal.d.ts +7 -0
  5. package/dist/src/cli/commands/goal.d.ts.map +1 -0
  6. package/dist/src/cli/commands/goal.js +246 -0
  7. package/dist/src/cli/commands/goal.js.map +1 -0
  8. package/dist/src/cli/commands/memory.d.ts +3 -0
  9. package/dist/src/cli/commands/memory.d.ts.map +1 -0
  10. package/dist/src/cli/commands/memory.js +108 -0
  11. package/dist/src/cli/commands/memory.js.map +1 -0
  12. package/dist/src/cli/index.d.ts.map +1 -1
  13. package/dist/src/cli/index.js +7 -2
  14. package/dist/src/cli/index.js.map +1 -1
  15. package/dist/src/daemon/manager.d.ts +9 -3
  16. package/dist/src/daemon/manager.d.ts.map +1 -1
  17. package/dist/src/daemon/manager.js +31 -10
  18. package/dist/src/daemon/manager.js.map +1 -1
  19. package/dist/src/daemon/service.d.ts +76 -0
  20. package/dist/src/daemon/service.d.ts.map +1 -0
  21. package/dist/src/daemon/service.js +284 -0
  22. package/dist/src/daemon/service.js.map +1 -0
  23. package/dist/src/daemon/triggers.d.ts +34 -0
  24. package/dist/src/daemon/triggers.d.ts.map +1 -0
  25. package/dist/src/daemon/triggers.js +76 -0
  26. package/dist/src/daemon/triggers.js.map +1 -0
  27. package/dist/src/goals/store.d.ts +128 -0
  28. package/dist/src/goals/store.d.ts.map +1 -0
  29. package/dist/src/goals/store.js +234 -0
  30. package/dist/src/goals/store.js.map +1 -0
  31. package/dist/src/memory/store.d.ts +69 -0
  32. package/dist/src/memory/store.d.ts.map +1 -0
  33. package/dist/src/memory/store.js +255 -0
  34. package/dist/src/memory/store.js.map +1 -0
  35. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,mBAAmB,IAAI,OAAO,CAyC7C"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mBAAmB,IAAI,OAAO,CA0L7C"}
@@ -1,41 +1,181 @@
1
1
  import { Command } from 'commander';
2
2
  import chalk from 'chalk';
3
3
  import { DaemonManager } from '../../daemon/manager.js';
4
+ import { MemoryStore } from '../../memory/store.js';
5
+ import { GoalStore } from '../../goals/store.js';
6
+ import { loadTriggers, getDefaultTriggersYaml } from '../../daemon/triggers.js';
7
+ import { writeFile, access } from 'node:fs/promises';
8
+ import path from 'node:path';
4
9
  export function createDaemonCommand() {
5
10
  const cmd = new Command('daemon')
6
- .description('Manage the agent daemon');
11
+ .description('Manage the autonomous agent daemon');
7
12
  const manager = new DaemonManager();
13
+ // ─── Start daemon ───
8
14
  cmd
9
15
  .command('start')
10
- .description('Start the agent daemon')
16
+ .description('Start the autonomous agent daemon')
11
17
  .action(async () => {
18
+ // Ensure triggers.yaml exists
19
+ const triggersPath = path.join(process.cwd(), '.agent', 'triggers.yaml');
20
+ try {
21
+ await access(triggersPath);
22
+ }
23
+ catch {
24
+ await writeFile(triggersPath, getDefaultTriggersYaml(), 'utf-8');
25
+ console.log(chalk.dim(' Created .agent/triggers.yaml with defaults'));
26
+ }
12
27
  try {
13
28
  const result = await manager.start();
14
- console.log(chalk.green(`\n✓ ${result.message}\n`));
29
+ console.log(chalk.green(`\n✓ ${result.message}`));
30
+ console.log(chalk.dim(' View logs: agent daemon logs'));
31
+ console.log(chalk.dim(' Status: agent daemon status'));
32
+ console.log(chalk.dim(' Stop: agent daemon stop\n'));
15
33
  }
16
34
  catch (err) {
17
35
  console.error(chalk.red(`\n✗ Failed to start daemon: ${err.message}\n`));
18
36
  process.exit(1);
19
37
  }
20
38
  });
39
+ // ─── Stop daemon ───
21
40
  cmd
22
41
  .command('stop')
23
42
  .description('Stop the agent daemon')
24
43
  .action(async () => {
25
44
  const result = await manager.stop();
26
- console.log(chalk.cyan(`\n${result.message}\n`));
45
+ if (result.message.includes('not running')) {
46
+ console.log(chalk.yellow(`\n○ ${result.message}\n`));
47
+ }
48
+ else {
49
+ console.log(chalk.green(`\n✓ ${result.message}\n`));
50
+ }
27
51
  });
52
+ // ─── Status (full dashboard) ───
28
53
  cmd
29
54
  .command('status')
30
- .description('Check daemon status')
55
+ .description('Show daemon and agent status dashboard')
31
56
  .action(async () => {
32
57
  const status = await manager.status();
58
+ console.log(chalk.bold.cyan('\n🤖 Agent Daemon Status\n'));
33
59
  if (status.running) {
34
- console.log(chalk.green(`\n✓ Daemon is running (PID: ${status.pid})\n`));
60
+ console.log(` ${chalk.green('●')} ${chalk.green('Running')} (PID: ${status.pid})`);
35
61
  }
36
62
  else {
37
- console.log(chalk.yellow(`\nDaemon is not running\n`));
63
+ console.log(` ${chalk.red('')} ${chalk.yellow('Stopped')}`);
38
64
  console.log(chalk.dim(' Start with: agent daemon start\n'));
65
+ return;
66
+ }
67
+ // Load triggers info
68
+ const triggers = await loadTriggers(process.cwd());
69
+ console.log(` ${chalk.dim('Triggers:')} ${triggers.length} active`);
70
+ for (const t of triggers) {
71
+ const eventIcon = t.event === 'cron' || t.event === 'goal.check'
72
+ ? '📅'
73
+ : t.event === 'file.changed'
74
+ ? '👁️'
75
+ : '🔗';
76
+ console.log(chalk.dim(` ${eventIcon} ${t.name} → ${t.schedule ?? t.watch ?? t.event}`));
77
+ }
78
+ // Show goal/task summary
79
+ try {
80
+ const mem = MemoryStore.open(process.cwd());
81
+ const goals = new GoalStore(mem);
82
+ const stats = goals.stats();
83
+ console.log();
84
+ console.log(` ${chalk.dim('Goals:')} ${stats.activeGoals} active, ${stats.completedGoals} completed`);
85
+ console.log(` ${chalk.dim('Tasks:')} ${stats.pendingTasks} pending, ${stats.runningTasks} running, ${stats.completedTasks} done`);
86
+ if (stats.awaitingApproval > 0) {
87
+ console.log(chalk.yellow(` ${chalk.bold('⚠️ Approval:')} ${stats.awaitingApproval} task(s) waiting for your approval`));
88
+ console.log(chalk.dim(' Run: agent goal status'));
89
+ }
90
+ }
91
+ catch {
92
+ // No memory DB yet, that's fine
93
+ }
94
+ // Show recent logs
95
+ const logs = await manager.getLogs(5);
96
+ if (logs.length > 0 && logs[0] !== 'No daemon logs found.') {
97
+ console.log();
98
+ console.log(` ${chalk.dim('Recent Activity:')}`);
99
+ for (const line of logs) {
100
+ console.log(chalk.dim(` ${line.replace(/^\[.*?\]\s*/, '')}`));
101
+ }
102
+ }
103
+ console.log();
104
+ });
105
+ // ─── View logs ───
106
+ cmd
107
+ .command('logs')
108
+ .description('View daemon activity logs')
109
+ .option('-n, --lines <n>', 'Number of lines', '30')
110
+ .option('-f, --follow', 'Follow log output (live tail)')
111
+ .action(async (opts) => {
112
+ if (opts.follow) {
113
+ // Live tail using child process
114
+ const logPath = path.join(process.cwd(), '.agent', 'daemon.log');
115
+ console.log(chalk.dim(`\n📜 Tailing ${logPath} (Ctrl+C to stop)\n`));
116
+ const { spawn } = await import('node:child_process');
117
+ const tail = spawn('tail', ['-f', '-n', opts.lines, logPath], {
118
+ stdio: 'inherit',
119
+ });
120
+ process.on('SIGINT', () => {
121
+ tail.kill();
122
+ process.exit(0);
123
+ });
124
+ return;
125
+ }
126
+ const logs = await manager.getLogs(parseInt(opts.lines));
127
+ console.log(chalk.bold.cyan('\n📜 Daemon Logs\n'));
128
+ for (const line of logs) {
129
+ // Color-code by log level
130
+ if (line.includes('✅') || line.includes('🟢')) {
131
+ console.log(chalk.green(` ${line}`));
132
+ }
133
+ else if (line.includes('❌') || line.includes('🔴')) {
134
+ console.log(chalk.red(` ${line}`));
135
+ }
136
+ else if (line.includes('⚡') || line.includes('💡')) {
137
+ console.log(chalk.yellow(` ${line}`));
138
+ }
139
+ else {
140
+ console.log(chalk.dim(` ${line}`));
141
+ }
142
+ }
143
+ console.log();
144
+ });
145
+ // ─── Show triggers ───
146
+ cmd
147
+ .command('triggers')
148
+ .description('Show configured daemon triggers')
149
+ .action(async () => {
150
+ const triggers = await loadTriggers(process.cwd());
151
+ if (triggers.length === 0) {
152
+ console.log(chalk.yellow('\nNo triggers configured.'));
153
+ console.log(chalk.dim(' Create .agent/triggers.yaml to define triggers'));
154
+ console.log(chalk.dim(' Or run: agent daemon start (creates default triggers)\n'));
155
+ return;
156
+ }
157
+ console.log(chalk.bold.cyan('\n⚡ Daemon Triggers\n'));
158
+ for (const t of triggers) {
159
+ const icon = t.event === 'cron' || t.event === 'goal.check'
160
+ ? '📅'
161
+ : t.event === 'file.changed'
162
+ ? '👁️'
163
+ : t.event === 'webhook'
164
+ ? '🔗'
165
+ : '📡';
166
+ console.log(` ${icon} ${chalk.white.bold(t.name)} ${chalk.dim(`[${t.event}]`)}` +
167
+ (t.enabled ? chalk.green(' ✓') : chalk.red(' ✗ disabled')));
168
+ if (t.schedule)
169
+ console.log(chalk.dim(` Schedule: ${t.schedule}`));
170
+ if (t.watch)
171
+ console.log(chalk.dim(` Watch: ${Array.isArray(t.watch) ? t.watch.join(', ') : t.watch}`));
172
+ if (t.action.skill)
173
+ console.log(chalk.dim(` Action: skill → ${t.action.skill}`));
174
+ if (t.action.run)
175
+ console.log(chalk.dim(` Action: run → ${t.action.run}`));
176
+ if (t.action.type)
177
+ console.log(chalk.dim(` Action: ${t.action.type}`));
178
+ console.log();
39
179
  }
40
180
  });
41
181
  return cmd;
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,UAAU,mBAAmB;IAC/B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;SAC5B,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IAEpC,GAAG;SACE,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAAgC,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,GAAG;SACE,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEP,GAAG;SACE,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;QACjE,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,OAAO,GAAG,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../../src/cli/commands/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ export declare function createGoalCommand(): Command;
3
+ /**
4
+ * Standalone approve command (registered at top level: agent approve <id>)
5
+ */
6
+ export declare function createApproveCommand(): Command;
7
+ //# sourceMappingURL=goal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/goal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,wBAAgB,iBAAiB,IAAI,OAAO,CAqO3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAc9C"}
@@ -0,0 +1,246 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { MemoryStore } from '../../memory/store.js';
4
+ import { GoalStore } from '../../goals/store.js';
5
+ function getStores() {
6
+ const mem = MemoryStore.open(process.cwd());
7
+ const goals = new GoalStore(mem);
8
+ return { mem, goals };
9
+ }
10
+ function progressBar(progress, width = 20) {
11
+ const filled = Math.round(progress * width);
12
+ const empty = width - filled;
13
+ const bar = '█'.repeat(filled) + '░'.repeat(empty);
14
+ const pct = Math.round(progress * 100);
15
+ return `${bar} ${pct}%`;
16
+ }
17
+ function statusIcon(status) {
18
+ switch (status) {
19
+ case 'active': return '🔄';
20
+ case 'completed': return '✅';
21
+ case 'failed': return '❌';
22
+ case 'paused': return '⏸️';
23
+ case 'cancelled': return '🚫';
24
+ case 'pending': return '⏳';
25
+ case 'queued': return '📋';
26
+ case 'running': return '🔄';
27
+ case 'blocked': return '🚧';
28
+ default: return '❓';
29
+ }
30
+ }
31
+ export function createGoalCommand() {
32
+ const cmd = new Command('goal')
33
+ .description('Manage autonomous goals and tasks');
34
+ // ─── Add a goal ───
35
+ cmd
36
+ .command('add <title>')
37
+ .description('Add a new goal for the agent to accomplish')
38
+ .option('-d, --description <desc>', 'Detailed description')
39
+ .option('-p, --priority <n>', 'Priority 1-10 (1=critical)', '5')
40
+ .option('--deadline <date>', 'Deadline (ISO date format)')
41
+ .action(async (title, opts) => {
42
+ const { goals } = getStores();
43
+ const goal = goals.addGoal(title, {
44
+ description: opts.description,
45
+ priority: parseInt(opts.priority),
46
+ deadline: opts.deadline,
47
+ });
48
+ console.log(chalk.green(`\n✓ Goal #${goal.id} created`));
49
+ console.log(chalk.white.bold(` ${goal.title}`));
50
+ if (goal.description)
51
+ console.log(chalk.dim(` ${goal.description}`));
52
+ console.log(chalk.dim(` Priority: ${goal.priority}/10`));
53
+ if (goal.deadline)
54
+ console.log(chalk.dim(` Deadline: ${goal.deadline}`));
55
+ console.log(chalk.dim(`\n Add tasks: agent goal task ${goal.id} "task description"\n`));
56
+ });
57
+ // ─── List goals ───
58
+ cmd
59
+ .command('list')
60
+ .description('List all goals')
61
+ .option('-s, --status <status>', 'Filter by status: active|paused|completed|failed')
62
+ .action(async (opts) => {
63
+ const { goals } = getStores();
64
+ const allGoals = goals.listGoals(opts.status);
65
+ if (allGoals.length === 0) {
66
+ console.log(chalk.yellow('\nNo goals found.'));
67
+ console.log(chalk.dim(' Create one: agent goal add "Your goal"\n'));
68
+ return;
69
+ }
70
+ console.log(chalk.bold.cyan('\n🎯 Goals\n'));
71
+ for (const goal of allGoals) {
72
+ const tasks = goals.listTasks(goal.id);
73
+ const completed = tasks.filter(t => t.status === 'completed').length;
74
+ console.log(` ${statusIcon(goal.status)} ` +
75
+ `${chalk.dim(`#${goal.id}`)} ` +
76
+ chalk.white.bold(goal.title) +
77
+ ` ${chalk.dim(`[P${goal.priority}]`)}`);
78
+ console.log(` ${progressBar(goal.progress)} ` +
79
+ chalk.dim(`(${completed}/${tasks.length} tasks)`));
80
+ if (goal.deadline) {
81
+ console.log(chalk.dim(` ⏰ Deadline: ${goal.deadline}`));
82
+ }
83
+ console.log();
84
+ }
85
+ });
86
+ // ─── Goal status (detailed) ───
87
+ cmd
88
+ .command('status [goalId]')
89
+ .description('Show detailed goal status with tasks')
90
+ .action(async (goalId) => {
91
+ const { goals } = getStores();
92
+ if (goalId) {
93
+ // Show specific goal
94
+ const goal = goals.getGoal(parseInt(goalId));
95
+ if (!goal) {
96
+ console.error(chalk.red(`\n✗ Goal #${goalId} not found\n`));
97
+ return;
98
+ }
99
+ const tasks = goals.listTasks(goal.id);
100
+ console.log(chalk.bold.cyan(`\n🎯 ${goal.title}\n`));
101
+ console.log(` ${chalk.dim('Status:')} ${statusIcon(goal.status)} ${goal.status}`);
102
+ console.log(` ${chalk.dim('Priority:')} ${goal.priority}/10`);
103
+ console.log(` ${chalk.dim('Progress:')} ${progressBar(goal.progress)}`);
104
+ if (goal.deadline)
105
+ console.log(` ${chalk.dim('Deadline:')} ${goal.deadline}`);
106
+ if (goal.description)
107
+ console.log(` ${chalk.dim('Details:')} ${goal.description}`);
108
+ console.log();
109
+ if (tasks.length > 0) {
110
+ console.log(chalk.bold(' Tasks:'));
111
+ for (const task of tasks) {
112
+ const icon = statusIcon(task.status);
113
+ const skillTag = task.skill ? chalk.blue(` [${task.skill}]`) : '';
114
+ const approval = task.requires_approval && !task.approved_at
115
+ ? chalk.yellow(' 🛡️ needs approval')
116
+ : '';
117
+ console.log(` ${icon} ${chalk.dim(`#${task.id}`)} ` +
118
+ chalk.white(task.title) +
119
+ skillTag +
120
+ approval);
121
+ if (task.error) {
122
+ console.log(chalk.red(` Error: ${task.error}`));
123
+ }
124
+ if (task.output) {
125
+ const preview = task.output.slice(0, 80);
126
+ console.log(chalk.dim(` Output: ${preview}${task.output.length > 80 ? '...' : ''}`));
127
+ }
128
+ }
129
+ }
130
+ else {
131
+ console.log(chalk.dim(' No tasks yet.'));
132
+ console.log(chalk.dim(` Add: agent goal task ${goal.id} "task description"`));
133
+ }
134
+ console.log();
135
+ }
136
+ else {
137
+ // Show overview dashboard
138
+ const stats = goals.stats();
139
+ const activeGoals = goals.listGoals('active');
140
+ console.log(chalk.bold.cyan('\n📊 Agent Status Dashboard\n'));
141
+ console.log(` ${chalk.dim('Active Goals:')} ${stats.activeGoals}`);
142
+ console.log(` ${chalk.dim('Completed Goals:')} ${stats.completedGoals}`);
143
+ console.log(` ${chalk.dim('Pending Tasks:')} ${stats.pendingTasks}`);
144
+ console.log(` ${chalk.dim('Running Tasks:')} ${stats.runningTasks}`);
145
+ console.log(` ${chalk.dim('Awaiting Approval:')} ${stats.awaitingApproval}`);
146
+ console.log();
147
+ if (activeGoals.length > 0) {
148
+ console.log(chalk.bold(' Active Goals:'));
149
+ for (const goal of activeGoals) {
150
+ console.log(` ${chalk.dim(`#${goal.id}`)} ` +
151
+ chalk.white.bold(goal.title) +
152
+ ` ${progressBar(goal.progress, 15)}`);
153
+ }
154
+ console.log();
155
+ }
156
+ const approvals = goals.getPendingApprovals();
157
+ if (approvals.length > 0) {
158
+ console.log(chalk.bold.yellow(' ⚠️ Awaiting Your Approval:'));
159
+ for (const task of approvals) {
160
+ console.log(` 🛡️ ${chalk.dim(`#${task.id}`)} ` +
161
+ chalk.white(task.title) +
162
+ chalk.dim(` (Goal #${task.goal_id})`));
163
+ }
164
+ console.log(chalk.dim(' Approve: agent approve <task-id>'));
165
+ console.log();
166
+ }
167
+ }
168
+ });
169
+ // ─── Add task to goal ───
170
+ cmd
171
+ .command('task <goalId> <title>')
172
+ .description('Add a task to a goal')
173
+ .option('-s, --skill <skill>', 'Skill to use for this task')
174
+ .option('--depends <ids>', 'Comma-separated task IDs this depends on')
175
+ .option('--approval', 'Requires human approval before execution')
176
+ .action(async (goalId, title, opts) => {
177
+ const { goals } = getStores();
178
+ const goal = goals.getGoal(parseInt(goalId));
179
+ if (!goal) {
180
+ console.error(chalk.red(`\n✗ Goal #${goalId} not found\n`));
181
+ return;
182
+ }
183
+ const dependsOn = opts.depends
184
+ ? opts.depends.split(',').map(id => parseInt(id.trim()))
185
+ : [];
186
+ const task = goals.addTask(parseInt(goalId), title, {
187
+ skill: opts.skill,
188
+ dependsOn,
189
+ requiresApproval: opts.approval ?? false,
190
+ });
191
+ console.log(chalk.green(`\n✓ Task #${task.id} added to Goal #${goalId}`));
192
+ console.log(chalk.white(` ${title}`));
193
+ if (opts.skill)
194
+ console.log(chalk.dim(` Skill: ${opts.skill}`));
195
+ if (dependsOn.length > 0)
196
+ console.log(chalk.dim(` Depends on: ${dependsOn.join(', ')}`));
197
+ if (opts.approval)
198
+ console.log(chalk.yellow(` ⚠️ Requires human approval`));
199
+ console.log();
200
+ });
201
+ // ─── Pause/Resume/Cancel goal ───
202
+ cmd
203
+ .command('pause <goalId>')
204
+ .description('Pause an active goal')
205
+ .action(async (goalId) => {
206
+ const { goals } = getStores();
207
+ goals.updateGoalStatus(parseInt(goalId), 'paused');
208
+ console.log(chalk.yellow(`\n⏸️ Goal #${goalId} paused\n`));
209
+ });
210
+ cmd
211
+ .command('resume <goalId>')
212
+ .description('Resume a paused goal')
213
+ .action(async (goalId) => {
214
+ const { goals } = getStores();
215
+ goals.updateGoalStatus(parseInt(goalId), 'active');
216
+ console.log(chalk.green(`\n▶️ Goal #${goalId} resumed\n`));
217
+ });
218
+ cmd
219
+ .command('cancel <goalId>')
220
+ .description('Cancel a goal')
221
+ .action(async (goalId) => {
222
+ const { goals } = getStores();
223
+ goals.updateGoalStatus(parseInt(goalId), 'cancelled');
224
+ console.log(chalk.red(`\n🚫 Goal #${goalId} cancelled\n`));
225
+ });
226
+ return cmd;
227
+ }
228
+ /**
229
+ * Standalone approve command (registered at top level: agent approve <id>)
230
+ */
231
+ export function createApproveCommand() {
232
+ return new Command('approve')
233
+ .argument('<taskId>', 'Task ID to approve')
234
+ .description('Approve a task that requires human authorization')
235
+ .action(async (taskId) => {
236
+ const { goals } = getStores();
237
+ const approved = goals.approveTask(parseInt(taskId));
238
+ if (approved) {
239
+ console.log(chalk.green(`\n✅ Task #${taskId} approved and queued for execution\n`));
240
+ }
241
+ else {
242
+ console.error(chalk.red(`\n✗ Task #${taskId} not found or doesn't require approval\n`));
243
+ }
244
+ });
245
+ }
246
+ //# sourceMappingURL=goal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal.js","sourceRoot":"","sources":["../../../../src/cli/commands/goal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createMemoryCommand(): Command;
3
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,mBAAmB,IAAI,OAAO,CAuH7C"}
@@ -0,0 +1,108 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { MemoryStore } from '../../memory/store.js';
4
+ export function createMemoryCommand() {
5
+ const cmd = new Command('memory')
6
+ .description('Manage agent persistent memory');
7
+ // ─── Save a memory ───
8
+ cmd
9
+ .command('save <content>')
10
+ .description('Save a memory (fact, preference, or project context)')
11
+ .option('-c, --category <cat>', 'Category: project|preference|fact|learned|general', 'general')
12
+ .option('-t, --tags <tags>', 'Comma-separated tags', '')
13
+ .action(async (content, opts) => {
14
+ const store = MemoryStore.open(process.cwd());
15
+ const tags = opts.tags ? opts.tags.split(',').map(t => t.trim()) : [];
16
+ const memory = store.save(content, opts.category, 'user', tags);
17
+ console.log(chalk.green(`\n✓ Memory saved (ID: ${memory.id})`));
18
+ console.log(chalk.dim(` Category: ${memory.category}`));
19
+ if (tags.length > 0)
20
+ console.log(chalk.dim(` Tags: ${tags.join(', ')}`));
21
+ console.log(chalk.dim(` Content: ${memory.content}\n`));
22
+ });
23
+ // ─── Search memories ───
24
+ cmd
25
+ .command('search <query>')
26
+ .description('Search memories using full-text search')
27
+ .option('-l, --limit <n>', 'Max results', '10')
28
+ .action(async (query, opts) => {
29
+ const store = MemoryStore.open(process.cwd());
30
+ const results = store.search(query, parseInt(opts.limit));
31
+ if (results.length === 0) {
32
+ console.log(chalk.yellow(`\nNo memories found matching "${query}"\n`));
33
+ return;
34
+ }
35
+ console.log(chalk.bold.cyan(`\n🧠 Memories matching "${query}":\n`));
36
+ for (const mem of results) {
37
+ console.log(` ${chalk.dim(`#${mem.id}`)} ` +
38
+ `${chalk.magenta(`[${mem.category}]`)} ` +
39
+ chalk.white(mem.content));
40
+ console.log(chalk.dim(` Saved: ${mem.created_at} | Source: ${mem.source}`));
41
+ if (mem.tags.length > 0) {
42
+ console.log(chalk.dim(` Tags: ${mem.tags.join(', ')}`));
43
+ }
44
+ console.log();
45
+ }
46
+ });
47
+ // ─── List all memories ───
48
+ cmd
49
+ .command('list')
50
+ .description('List all saved memories')
51
+ .option('-c, --category <cat>', 'Filter by category')
52
+ .option('-l, --limit <n>', 'Max results', '20')
53
+ .action(async (opts) => {
54
+ const store = MemoryStore.open(process.cwd());
55
+ const memories = store.list(opts.category, parseInt(opts.limit));
56
+ if (memories.length === 0) {
57
+ console.log(chalk.yellow('\nNo memories saved yet.'));
58
+ console.log(chalk.dim(' Save one: agent memory save "some fact"\n'));
59
+ return;
60
+ }
61
+ console.log(chalk.bold.cyan('\n🧠 Agent Memory\n'));
62
+ for (const mem of memories) {
63
+ console.log(` ${chalk.dim(`#${mem.id}`)} ` +
64
+ `${chalk.magenta(`[${mem.category}]`)} ` +
65
+ chalk.white(mem.content));
66
+ if (mem.tags.length > 0) {
67
+ console.log(chalk.dim(` Tags: ${mem.tags.join(', ')}`));
68
+ }
69
+ }
70
+ const stats = store.stats();
71
+ console.log(chalk.dim(`\n Total: ${stats.total} memories\n`));
72
+ });
73
+ // ─── Forget a memory ───
74
+ cmd
75
+ .command('forget <id>')
76
+ .description('Delete a memory by ID')
77
+ .action(async (id) => {
78
+ const store = MemoryStore.open(process.cwd());
79
+ const deleted = store.forget(parseInt(id));
80
+ if (deleted) {
81
+ console.log(chalk.green(`\n✓ Memory #${id} deleted\n`));
82
+ }
83
+ else {
84
+ console.error(chalk.red(`\n✗ Memory #${id} not found\n`));
85
+ }
86
+ });
87
+ // ─── Memory stats ───
88
+ cmd
89
+ .command('stats')
90
+ .description('Show memory statistics')
91
+ .action(async () => {
92
+ const store = MemoryStore.open(process.cwd());
93
+ const stats = store.stats();
94
+ console.log(chalk.bold.cyan('\n📊 Memory Stats\n'));
95
+ console.log(` ${chalk.dim('Total:')} ${stats.total}`);
96
+ console.log(` ${chalk.dim('By Category:')}`);
97
+ for (const [cat, count] of Object.entries(stats.byCategory)) {
98
+ console.log(` ${chalk.magenta(cat)}: ${count}`);
99
+ }
100
+ console.log(` ${chalk.dim('By Source:')}`);
101
+ for (const [src, count] of Object.entries(stats.bySource)) {
102
+ console.log(` ${chalk.blue(src)}: ${count}`);
103
+ }
104
+ console.log();
105
+ });
106
+ return cmd;
107
+ }
108
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../../src/cli/commands/memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAsBnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAyBnC"}