@praveencs/agent 0.2.0 → 0.7.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 (58) hide show
  1. package/README.md +42 -982
  2. package/dist/src/cli/commands/daemon.d.ts.map +1 -1
  3. package/dist/src/cli/commands/daemon.js +147 -7
  4. package/dist/src/cli/commands/daemon.js.map +1 -1
  5. package/dist/src/cli/commands/goal.d.ts.map +1 -1
  6. package/dist/src/cli/commands/goal.js +67 -0
  7. package/dist/src/cli/commands/goal.js.map +1 -1
  8. package/dist/src/cli/commands/report.d.ts +3 -0
  9. package/dist/src/cli/commands/report.d.ts.map +1 -0
  10. package/dist/src/cli/commands/report.js +34 -0
  11. package/dist/src/cli/commands/report.js.map +1 -0
  12. package/dist/src/cli/commands/skills.d.ts.map +1 -1
  13. package/dist/src/cli/commands/skills.js +100 -0
  14. package/dist/src/cli/commands/skills.js.map +1 -1
  15. package/dist/src/cli/index.d.ts.map +1 -1
  16. package/dist/src/cli/index.js +3 -1
  17. package/dist/src/cli/index.js.map +1 -1
  18. package/dist/src/daemon/manager.d.ts +9 -3
  19. package/dist/src/daemon/manager.d.ts.map +1 -1
  20. package/dist/src/daemon/manager.js +31 -10
  21. package/dist/src/daemon/manager.js.map +1 -1
  22. package/dist/src/daemon/service.d.ts +76 -0
  23. package/dist/src/daemon/service.d.ts.map +1 -0
  24. package/dist/src/daemon/service.js +284 -0
  25. package/dist/src/daemon/service.js.map +1 -0
  26. package/dist/src/daemon/triggers.d.ts +34 -0
  27. package/dist/src/daemon/triggers.d.ts.map +1 -0
  28. package/dist/src/daemon/triggers.js +76 -0
  29. package/dist/src/daemon/triggers.js.map +1 -0
  30. package/dist/src/goals/decomposer.d.ts +41 -0
  31. package/dist/src/goals/decomposer.d.ts.map +1 -0
  32. package/dist/src/goals/decomposer.js +167 -0
  33. package/dist/src/goals/decomposer.js.map +1 -0
  34. package/dist/src/goals/executor.d.ts +52 -0
  35. package/dist/src/goals/executor.d.ts.map +1 -0
  36. package/dist/src/goals/executor.js +198 -0
  37. package/dist/src/goals/executor.js.map +1 -0
  38. package/dist/src/goals/store.d.ts +4 -0
  39. package/dist/src/goals/store.d.ts.map +1 -1
  40. package/dist/src/goals/store.js +13 -0
  41. package/dist/src/goals/store.js.map +1 -1
  42. package/dist/src/memory/store.d.ts +12 -0
  43. package/dist/src/memory/store.d.ts.map +1 -1
  44. package/dist/src/memory/store.js +57 -1
  45. package/dist/src/memory/store.js.map +1 -1
  46. package/dist/src/reporting/generator.d.ts +14 -0
  47. package/dist/src/reporting/generator.d.ts.map +1 -0
  48. package/dist/src/reporting/generator.js +91 -0
  49. package/dist/src/reporting/generator.js.map +1 -0
  50. package/dist/src/skills/doctor.d.ts +30 -0
  51. package/dist/src/skills/doctor.d.ts.map +1 -0
  52. package/dist/src/skills/doctor.js +108 -0
  53. package/dist/src/skills/doctor.js.map +1 -0
  54. package/dist/src/skills/loader.d.ts +4 -0
  55. package/dist/src/skills/loader.d.ts.map +1 -1
  56. package/dist/src/skills/loader.js +13 -0
  57. package/dist/src/skills/loader.js.map +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { parse as parseYaml } from 'yaml';
4
+ /**
5
+ * Load triggers from .agent/triggers.yaml
6
+ */
7
+ export async function loadTriggers(workDir) {
8
+ const dir = workDir ?? process.cwd();
9
+ const triggersPath = path.join(dir, '.agent', 'triggers.yaml');
10
+ try {
11
+ const content = await readFile(triggersPath, 'utf-8');
12
+ const parsed = parseYaml(content);
13
+ if (!parsed?.triggers || !Array.isArray(parsed.triggers)) {
14
+ return [];
15
+ }
16
+ return parsed.triggers
17
+ .filter(t => t.enabled !== false)
18
+ .map(t => ({
19
+ ...t,
20
+ enabled: t.enabled !== false,
21
+ debounce: t.debounce ?? 2000,
22
+ }));
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ }
28
+ /**
29
+ * Get the default triggers template
30
+ */
31
+ export function getDefaultTriggersYaml() {
32
+ return `# Agent Daemon Triggers
33
+ # These define what the daemon watches and automates.
34
+ # Event types: file.changed, cron, webhook, git.push, goal.check
35
+
36
+ triggers:
37
+ # Process the goal/task queue every 2 minutes
38
+ - name: goal-processor
39
+ event: goal.check
40
+ schedule: "*/2 * * * *"
41
+ enabled: true
42
+ action:
43
+ type: goal-progress
44
+
45
+ # Daily standup report from git log
46
+ # - name: morning-standup
47
+ # event: cron
48
+ # schedule: "0 9 * * 1-5"
49
+ # enabled: false
50
+ # action:
51
+ # skill: git-commit
52
+ # input:
53
+ # type: standup-report
54
+
55
+ # Auto code-review on file changes
56
+ # - name: auto-review
57
+ # event: file.changed
58
+ # watch: "src/**/*.ts"
59
+ # debounce: 5000
60
+ # enabled: false
61
+ # action:
62
+ # skill: code-review
63
+ # input:
64
+ # scope: changed-files
65
+
66
+ # System health check every hour
67
+ # - name: health-check
68
+ # event: cron
69
+ # schedule: "0 * * * *"
70
+ # enabled: false
71
+ # action:
72
+ # skill: system-monitor
73
+ # report: true
74
+ `;
75
+ }
76
+ //# sourceMappingURL=triggers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../../src/daemon/triggers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAmC1C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB;IAC/C,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAE/D,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAiB,CAAC;QAElD,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ;aACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACP,GAAG,CAAC;YACJ,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK;YAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;SAC/B,CAAC,CAAC,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CV,CAAC;AACF,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { LLMRouter } from '../llm/router.js';
2
+ import { MemoryStore } from '../memory/store.js';
3
+ import { GoalStore, type Goal, type Task } from './store.js';
4
+ /**
5
+ * Goal Decomposition Engine
6
+ *
7
+ * Uses the LLM to break high-level goals into concrete,
8
+ * executable tasks with dependencies and skill assignments.
9
+ */
10
+ export interface DecomposedTask {
11
+ title: string;
12
+ description: string;
13
+ skill?: string;
14
+ dependsOnIndex?: number[];
15
+ requiresApproval?: boolean;
16
+ input?: Record<string, any>;
17
+ }
18
+ export interface DecompositionResult {
19
+ tasks: DecomposedTask[];
20
+ reasoning: string;
21
+ estimatedMinutes: number;
22
+ }
23
+ export declare class GoalDecomposer {
24
+ private llm;
25
+ private memoryStore;
26
+ private goalStore;
27
+ constructor(llm: LLMRouter, memoryStore: MemoryStore, goalStore: GoalStore);
28
+ /**
29
+ * Decompose a goal into tasks using the LLM
30
+ */
31
+ decompose(goal: Goal): Promise<DecompositionResult>;
32
+ /**
33
+ * Decompose and immediately create tasks in the goal store
34
+ */
35
+ decomposeAndCreate(goal: Goal): Promise<Task[]>;
36
+ /**
37
+ * Parse the LLM's JSON response robustly
38
+ */
39
+ private parseResponse;
40
+ }
41
+ //# sourceMappingURL=decomposer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer.d.ts","sourceRoot":"","sources":["../../../src/goals/decomposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAG7D;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AA2BD,qBAAa,cAAc;IAEnB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;gBAFT,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS;IAGhC;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyDzD;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA8CrD;;OAEG;IACH,OAAO,CAAC,aAAa;CA0CxB"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Available skills context for the LLM
3
+ */
4
+ function getSkillsCatalog() {
5
+ return `
6
+ Available skills the agent can use:
7
+ - code-review: Analyze code for bugs, style, and improvements
8
+ - git-commit: Stage, commit, and push changes using conventional commits
9
+ - docker-deploy: Build Docker images and deploy containers
10
+ - project-scaffold: Create new projects (React, Next.js, Express, etc.)
11
+ - npm-publish: Version bump, build, and publish npm packages
12
+ - system-monitor: Check CPU, memory, disk, and running processes
13
+ - log-analyzer: Parse and summarize log files for errors/patterns
14
+ - file-organizer: Sort and organize files by type/date/size
15
+ - web-search: Search the web for information
16
+ - create-note: Create markdown notes and documentation
17
+ - api-tester: Test HTTP endpoints with assertions
18
+ - db-query: Execute and explain database queries
19
+ - backup: Create timestamped backups of files/directories
20
+ - cron-scheduler: Schedule recurring tasks
21
+ - send-email: Send notification emails
22
+ - open-vscode: Open files/projects in VS Code
23
+ `.trim();
24
+ }
25
+ export class GoalDecomposer {
26
+ llm;
27
+ memoryStore;
28
+ goalStore;
29
+ constructor(llm, memoryStore, goalStore) {
30
+ this.llm = llm;
31
+ this.memoryStore = memoryStore;
32
+ this.goalStore = goalStore;
33
+ }
34
+ /**
35
+ * Decompose a goal into tasks using the LLM
36
+ */
37
+ async decompose(goal) {
38
+ // Gather context from memory
39
+ const memoryContext = this.memoryStore.getContext(goal.title, 300);
40
+ const systemPrompt = `You are an autonomous AI agent planner. Your job is to break down a high-level goal into specific, actionable tasks.
41
+
42
+ Rules:
43
+ 1. Each task should be a single, concrete action
44
+ 2. Assign the most appropriate skill to each task (from the catalog below)
45
+ 3. Define dependencies between tasks (which tasks must complete first)
46
+ 4. Flag any task that modifies production systems or has destructive effects as requiresApproval: true
47
+ 5. Tasks should be ordered logically
48
+ 6. Keep tasks focused — one action per task
49
+ 7. Include a brief description for each task
50
+
51
+ ${getSkillsCatalog()}
52
+
53
+ ${memoryContext ? `\nRelevant context from agent memory:\n${memoryContext}` : ''}
54
+
55
+ Respond ONLY with valid JSON in this exact format:
56
+ {
57
+ "reasoning": "Brief explanation of your decomposition strategy",
58
+ "estimatedMinutes": <number>,
59
+ "tasks": [
60
+ {
61
+ "title": "Short task title",
62
+ "description": "What this task does",
63
+ "skill": "skill-name or null",
64
+ "dependsOnIndex": [0, 1],
65
+ "requiresApproval": false,
66
+ "input": {}
67
+ }
68
+ ]
69
+ }`;
70
+ const userPrompt = `Decompose this goal into executable tasks:
71
+
72
+ Goal: ${goal.title}
73
+ ${goal.description ? `Description: ${goal.description}` : ''}
74
+ ${goal.deadline ? `Deadline: ${goal.deadline}` : ''}
75
+ Priority: ${goal.priority}/10`;
76
+ const response = await this.llm.chat({
77
+ messages: [
78
+ { role: 'system', content: systemPrompt },
79
+ { role: 'user', content: userPrompt },
80
+ ],
81
+ temperature: 0.3,
82
+ maxTokens: 2000,
83
+ });
84
+ // Parse the LLM response
85
+ const parsed = this.parseResponse(response.content);
86
+ return parsed;
87
+ }
88
+ /**
89
+ * Decompose and immediately create tasks in the goal store
90
+ */
91
+ async decomposeAndCreate(goal) {
92
+ const result = await this.decompose(goal);
93
+ const createdTasks = [];
94
+ // Map task indices to real task IDs for dependency resolution
95
+ const indexToId = new Map();
96
+ for (let i = 0; i < result.tasks.length; i++) {
97
+ const taskDef = result.tasks[i];
98
+ // Resolve dependencies from array indices to task IDs
99
+ const dependsOn = [];
100
+ if (taskDef.dependsOnIndex) {
101
+ for (const depIdx of taskDef.dependsOnIndex) {
102
+ const depId = indexToId.get(depIdx);
103
+ if (depId !== undefined) {
104
+ dependsOn.push(depId);
105
+ }
106
+ }
107
+ }
108
+ const task = this.goalStore.addTask(goal.id, taskDef.title, {
109
+ description: taskDef.description,
110
+ skill: taskDef.skill,
111
+ input: taskDef.input,
112
+ dependsOn,
113
+ requiresApproval: taskDef.requiresApproval ?? false,
114
+ });
115
+ indexToId.set(i, task.id);
116
+ createdTasks.push(task);
117
+ }
118
+ // Save the decomposition reasoning as a memory
119
+ this.memoryStore.save(`Decomposed goal "${goal.title}" into ${createdTasks.length} tasks. ` +
120
+ `Strategy: ${result.reasoning}. ` +
121
+ `Estimated: ${result.estimatedMinutes} minutes.`, 'learned', 'agent', ['goal', 'decomposition', 'planning']);
122
+ return createdTasks;
123
+ }
124
+ /**
125
+ * Parse the LLM's JSON response robustly
126
+ */
127
+ parseResponse(content) {
128
+ // Try to extract JSON from the response (handles markdown code blocks)
129
+ let jsonStr = content;
130
+ // Strip markdown code fences if present
131
+ const jsonMatch = content.match(/```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/);
132
+ if (jsonMatch) {
133
+ jsonStr = jsonMatch[1];
134
+ }
135
+ try {
136
+ const parsed = JSON.parse(jsonStr.trim());
137
+ if (!Array.isArray(parsed.tasks)) {
138
+ throw new Error('Response missing tasks array');
139
+ }
140
+ return {
141
+ tasks: parsed.tasks.map((t) => ({
142
+ title: t.title ?? 'Unnamed task',
143
+ description: t.description ?? '',
144
+ skill: t.skill ?? undefined,
145
+ dependsOnIndex: t.dependsOnIndex ?? [],
146
+ requiresApproval: t.requiresApproval ?? false,
147
+ input: t.input ?? {},
148
+ })),
149
+ reasoning: parsed.reasoning ?? 'No reasoning provided',
150
+ estimatedMinutes: parsed.estimatedMinutes ?? 30,
151
+ };
152
+ }
153
+ catch (err) {
154
+ // Fallback: create a single task from the goal
155
+ return {
156
+ tasks: [{
157
+ title: 'Execute goal manually',
158
+ description: `LLM decomposition failed. Original response: ${content.slice(0, 200)}`,
159
+ requiresApproval: true,
160
+ }],
161
+ reasoning: `Decomposition failed: ${err.message}`,
162
+ estimatedMinutes: 60,
163
+ };
164
+ }
165
+ }
166
+ }
167
+ //# sourceMappingURL=decomposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer.js","sourceRoot":"","sources":["../../../src/goals/decomposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { LLMRouter } from '../llm/router.js';
2
+ import { MemoryStore } from '../memory/store.js';
3
+ import { GoalStore, type Task } from './store.js';
4
+ /**
5
+ * Task Executor — Runs individual tasks within goals
6
+ *
7
+ * Provides real execution via:
8
+ * 1. LLM-guided skill execution (sends task + skill prompt to LLM)
9
+ * 2. Direct shell command execution
10
+ * 3. Compound multi-step execution
11
+ */
12
+ export declare class TaskExecutor {
13
+ private llm;
14
+ private memoryStore;
15
+ private goalStore;
16
+ private workDir;
17
+ constructor(llm: LLMRouter, memoryStore: MemoryStore, goalStore: GoalStore, workDir?: string);
18
+ /**
19
+ * Execute a single task
20
+ */
21
+ execute(task: Task): Promise<{
22
+ success: boolean;
23
+ output: string;
24
+ }>;
25
+ /**
26
+ * Execute task using an assigned skill
27
+ */
28
+ private executeWithSkill;
29
+ /**
30
+ * Execute task directly with LLM reasoning (no specific skill)
31
+ */
32
+ private executeWithLLM;
33
+ /**
34
+ * Process the entire task queue for active goals
35
+ */
36
+ processQueue(maxTasks?: number): Promise<{
37
+ processed: number;
38
+ completed: number;
39
+ failed: number;
40
+ results: Array<{
41
+ taskId: number;
42
+ title: string;
43
+ success: boolean;
44
+ output: string;
45
+ }>;
46
+ }>;
47
+ /**
48
+ * Extract bash commands from LLM response
49
+ */
50
+ private extractCommands;
51
+ }
52
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/goals/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAMlD;;;;;;;GAOG;AACH,qBAAa,YAAY;IAEjB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;gBAHP,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,MAAsB;IAG3C;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmCxE;;OAEG;YACW,gBAAgB;IAgF9B;;OAEG;YACW,cAAc;IAyB5B;;OAEG;IACG,YAAY,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvF,CAAC;IA8BF;;OAEG;IACH,OAAO,CAAC,eAAe;CAiB1B"}
@@ -0,0 +1,198 @@
1
+ import { exec } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ const execAsync = promisify(exec);
4
+ /**
5
+ * Task Executor — Runs individual tasks within goals
6
+ *
7
+ * Provides real execution via:
8
+ * 1. LLM-guided skill execution (sends task + skill prompt to LLM)
9
+ * 2. Direct shell command execution
10
+ * 3. Compound multi-step execution
11
+ */
12
+ export class TaskExecutor {
13
+ llm;
14
+ memoryStore;
15
+ goalStore;
16
+ workDir;
17
+ constructor(llm, memoryStore, goalStore, workDir = process.cwd()) {
18
+ this.llm = llm;
19
+ this.memoryStore = memoryStore;
20
+ this.goalStore = goalStore;
21
+ this.workDir = workDir;
22
+ }
23
+ /**
24
+ * Execute a single task
25
+ */
26
+ async execute(task) {
27
+ // Mark as running
28
+ this.goalStore.startTask(task.id);
29
+ try {
30
+ let result;
31
+ if (task.skill) {
32
+ result = await this.executeWithSkill(task);
33
+ }
34
+ else {
35
+ result = await this.executeWithLLM(task);
36
+ }
37
+ if (result.success) {
38
+ this.goalStore.completeTask(task.id, result.output);
39
+ // Save learnings for future context
40
+ this.memoryStore.save(`Task completed: "${task.title}" → ${result.output.slice(0, 300)}`, 'learned', 'agent', ['task', 'execution', task.skill ?? 'general']);
41
+ }
42
+ else {
43
+ this.goalStore.failTask(task.id, result.output);
44
+ }
45
+ return result;
46
+ }
47
+ catch (err) {
48
+ const error = err.message;
49
+ this.goalStore.failTask(task.id, error);
50
+ return { success: false, output: error };
51
+ }
52
+ }
53
+ /**
54
+ * Execute task using an assigned skill
55
+ */
56
+ async executeWithSkill(task) {
57
+ const start = Date.now();
58
+ // Gather context
59
+ const memoryContext = this.memoryStore.getContext(task.title, 200);
60
+ const goal = this.goalStore.getGoal(task.goal_id);
61
+ const systemPrompt = `You are an autonomous agent executing a task as part of a larger goal.
62
+ You have the skill "${task.skill}" available.
63
+
64
+ Your job:
65
+ 1. Analyze the task and determine the exact actions needed
66
+ 2. Provide shell commands to execute (if applicable)
67
+ 3. Report what was accomplished
68
+
69
+ Important:
70
+ - Be specific and actionable
71
+ - If you need to run commands, wrap them in \`\`\`bash blocks
72
+ - Report results clearly
73
+ - Working directory: ${this.workDir}
74
+
75
+ ${memoryContext ? `\nRelevant context:\n${memoryContext}` : ''}`;
76
+ const userPrompt = `Execute this task:
77
+
78
+ Task: ${task.title}
79
+ ${task.description ? `Description: ${task.description}` : ''}
80
+ Skill: ${task.skill}
81
+ ${goal ? `Parent Goal: ${goal.title}` : ''}
82
+ ${Object.keys(task.input).length > 0 ? `Input: ${JSON.stringify(task.input)}` : ''}`;
83
+ let success = true;
84
+ let output = '';
85
+ try {
86
+ const response = await this.llm.chat({
87
+ messages: [
88
+ { role: 'system', content: systemPrompt },
89
+ { role: 'user', content: userPrompt },
90
+ ],
91
+ temperature: 0.2,
92
+ maxTokens: 1500,
93
+ skillName: task.skill ?? undefined,
94
+ });
95
+ // Extract and run any bash commands from the response
96
+ const commands = this.extractCommands(response.content);
97
+ const commandResults = [];
98
+ for (const cmd of commands) {
99
+ try {
100
+ const { stdout, stderr } = await execAsync(cmd, {
101
+ cwd: this.workDir,
102
+ timeout: 60_000,
103
+ env: { ...process.env },
104
+ });
105
+ commandResults.push(`$ ${cmd}\n${stdout.trim()}${stderr ? '\nstderr: ' + stderr.trim() : ''}`);
106
+ }
107
+ catch (err) {
108
+ success = false;
109
+ commandResults.push(`$ ${cmd}\nFailed: ${err.message}`);
110
+ }
111
+ }
112
+ output = commands.length > 0
113
+ ? `${response.content}\n\n--- Executed Commands ---\n${commandResults.join('\n\n')}`
114
+ : response.content;
115
+ }
116
+ catch (err) {
117
+ success = false;
118
+ output = `LLM/Execution Error: ${err.message}`;
119
+ }
120
+ // Record metrics
121
+ if (task.skill) {
122
+ this.memoryStore.recordSkillMetric(task.skill, success, Date.now() - start);
123
+ }
124
+ return { success, output };
125
+ }
126
+ /**
127
+ * Execute task directly with LLM reasoning (no specific skill)
128
+ */
129
+ async executeWithLLM(task) {
130
+ const memoryContext = this.memoryStore.getContext(task.title, 200);
131
+ const response = await this.llm.chat({
132
+ messages: [
133
+ {
134
+ role: 'system',
135
+ content: `You are an autonomous agent. Analyze and execute the given task.
136
+ Provide clear, actionable results.
137
+ If shell commands are needed, wrap them in \`\`\`bash blocks.
138
+ Working directory: ${this.workDir}
139
+ ${memoryContext ? `\nContext:\n${memoryContext}` : ''}`,
140
+ },
141
+ {
142
+ role: 'user',
143
+ content: `Execute: ${task.title}\n${task.description ?? ''}`,
144
+ },
145
+ ],
146
+ temperature: 0.2,
147
+ maxTokens: 1000,
148
+ });
149
+ return { success: true, output: response.content };
150
+ }
151
+ /**
152
+ * Process the entire task queue for active goals
153
+ */
154
+ async processQueue(maxTasks = 5) {
155
+ let processed = 0;
156
+ let completed = 0;
157
+ let failed = 0;
158
+ const results = [];
159
+ while (processed < maxTasks) {
160
+ const task = this.goalStore.getNextTask();
161
+ if (!task)
162
+ break;
163
+ processed++;
164
+ const result = await this.execute(task);
165
+ results.push({
166
+ taskId: task.id,
167
+ title: task.title,
168
+ success: result.success,
169
+ output: result.output.slice(0, 500),
170
+ });
171
+ if (result.success) {
172
+ completed++;
173
+ }
174
+ else {
175
+ failed++;
176
+ }
177
+ }
178
+ return { processed, completed, failed, results };
179
+ }
180
+ /**
181
+ * Extract bash commands from LLM response
182
+ */
183
+ extractCommands(content) {
184
+ const commands = [];
185
+ const regex = /```bash\n([\s\S]*?)```/g;
186
+ let match;
187
+ while ((match = regex.exec(content)) !== null) {
188
+ const block = match[1].trim();
189
+ // Split multi-line blocks into individual commands
190
+ const lines = block.split('\n')
191
+ .map(l => l.trim())
192
+ .filter(l => l && !l.startsWith('#'));
193
+ commands.push(...lines);
194
+ }
195
+ return commands;
196
+ }
197
+ }
198
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/goals/executor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IAET;IACA;IACA;IACA;IAJZ,YACY,GAAc,EACd,WAAwB,EACxB,SAAoB,EACpB,UAAkB,OAAO,CAAC,GAAG,EAAE;QAH/B,QAAG,GAAH,GAAG,CAAW;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAwB;IACvC,CAAC;IAEL;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAU;QACpB,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElC,IAAI,CAAC;YACD,IAAI,MAA4C,CAAC;YAEjD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEpD,oCAAoC;gBACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CACjB,oBAAoB,IAAI,CAAC,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAClE,SAAS,EACT,OAAO,EACP,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CACjD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAI,GAAa,CAAC,OAAO,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,IAAU;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,iBAAiB;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,YAAY,GAAG;sBACP,IAAI,CAAC,KAAK;;;;;;;;;;;uBAWT,IAAI,CAAC,OAAO;;EAEjC,aAAa,CAAC,CAAC,CAAC,wBAAwB,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEzD,MAAM,UAAU,GAAG;;QAEnB,IAAI,CAAC,KAAK;EAChB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;SACnD,IAAI,CAAC,KAAK;EACjB,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;EACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE7E,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACjC,QAAQ,EAAE;oBACN,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACxC;gBACD,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;aACrC,CAAC,CAAC;YAEH,sDAAsD;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,cAAc,GAAa,EAAE,CAAC;YAEpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;wBAC5C,GAAG,EAAE,IAAI,CAAC,OAAO;wBACjB,OAAO,EAAE,MAAM;wBACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;qBAC1B,CAAC,CAAC;oBACH,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnG,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,OAAO,GAAG,KAAK,CAAC;oBAChB,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;YAED,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACxB,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,kCAAkC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACpF,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM,GAAG,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC;QAC9D,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,IAAU;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE;gBACN;oBACI,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;;;qBAGR,IAAI,CAAC,OAAO;EAC/B,aAAa,CAAC,CAAC,CAAC,eAAe,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;iBACtC;gBACD;oBACI,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;iBAC/D;aACJ;YACD,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC;QAM3B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,OAAO,GAA+E,EAAE,CAAC;QAE/F,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI;gBAAE,MAAM;YAEjB,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAExC,OAAO,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aACtC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,SAAS,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,MAAM,EAAE,CAAC;YACb,CAAC;QACL,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAe;QACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,yBAAyB,CAAC;QACxC,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,mDAAmD;YACnD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAE1C,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ"}
@@ -106,6 +106,10 @@ export declare class GoalStore {
106
106
  * Approve a task that requires human approval
107
107
  */
108
108
  approveTask(id: number): boolean;
109
+ /**
110
+ * Get recent errors for a specific skill
111
+ */
112
+ getSkillErrors(skillName: string, limit?: number): string[];
109
113
  /**
110
114
  * Get tasks waiting for approval
111
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/goals/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/goals/store.ts"],"names":[],"mappings":"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"}
@@ -189,6 +189,19 @@ export class GoalStore {
189
189
  }
190
190
  return result.changes > 0;
191
191
  }
192
+ /**
193
+ * Get recent errors for a specific skill
194
+ */
195
+ getSkillErrors(skillName, limit = 5) {
196
+ const stmt = this.db.prepare(`
197
+ SELECT error, output FROM tasks
198
+ WHERE skill = ? AND (status IN ('failed', 'blocked') OR error IS NOT NULL)
199
+ ORDER BY created_at DESC
200
+ LIMIT ?
201
+ `);
202
+ const rows = stmt.all(skillName, limit);
203
+ return rows.map(r => r.error || r.output || 'Unknown error');
204
+ }
192
205
  /**
193
206
  * Get tasks waiting for approval
194
207
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/goals/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/goals/store.ts"],"names":[],"mappings":"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"}