@praveencs/agent 0.3.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.
- package/README.md +42 -982
- package/dist/src/cli/commands/goal.d.ts.map +1 -1
- package/dist/src/cli/commands/goal.js +67 -0
- package/dist/src/cli/commands/goal.js.map +1 -1
- package/dist/src/cli/commands/report.d.ts +3 -0
- package/dist/src/cli/commands/report.d.ts.map +1 -0
- package/dist/src/cli/commands/report.js +34 -0
- package/dist/src/cli/commands/report.js.map +1 -0
- package/dist/src/cli/commands/skills.d.ts.map +1 -1
- package/dist/src/cli/commands/skills.js +100 -0
- package/dist/src/cli/commands/skills.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +3 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/goals/decomposer.d.ts +41 -0
- package/dist/src/goals/decomposer.d.ts.map +1 -0
- package/dist/src/goals/decomposer.js +167 -0
- package/dist/src/goals/decomposer.js.map +1 -0
- package/dist/src/goals/executor.d.ts +52 -0
- package/dist/src/goals/executor.d.ts.map +1 -0
- package/dist/src/goals/executor.js +198 -0
- package/dist/src/goals/executor.js.map +1 -0
- package/dist/src/goals/store.d.ts +4 -0
- package/dist/src/goals/store.d.ts.map +1 -1
- package/dist/src/goals/store.js +13 -0
- package/dist/src/goals/store.js.map +1 -1
- package/dist/src/memory/store.d.ts +12 -0
- package/dist/src/memory/store.d.ts.map +1 -1
- package/dist/src/memory/store.js +57 -1
- package/dist/src/memory/store.js.map +1 -1
- package/dist/src/reporting/generator.d.ts +14 -0
- package/dist/src/reporting/generator.d.ts.map +1 -0
- package/dist/src/reporting/generator.js +91 -0
- package/dist/src/reporting/generator.js.map +1 -0
- package/dist/src/skills/doctor.d.ts +30 -0
- package/dist/src/skills/doctor.d.ts.map +1 -0
- package/dist/src/skills/doctor.js +108 -0
- package/dist/src/skills/doctor.js.map +1 -0
- package/dist/src/skills/loader.d.ts +4 -0
- package/dist/src/skills/loader.d.ts.map +1 -1
- package/dist/src/skills/loader.js +13 -0
- package/dist/src/skills/loader.js.map +1 -1
- package/package.json +2 -2
|
@@ -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":"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"}
|
|
@@ -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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"}
|
package/dist/src/goals/store.js
CHANGED
|
@@ -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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"}
|
|
@@ -64,6 +64,18 @@ export declare class MemoryStore {
|
|
|
64
64
|
};
|
|
65
65
|
private logAudit;
|
|
66
66
|
getAuditLog(limit?: number): any[];
|
|
67
|
+
/**
|
|
68
|
+
* Get activity for a specific date (default: today)
|
|
69
|
+
*/
|
|
70
|
+
getDailyActivity(date?: Date): any[];
|
|
71
|
+
/**
|
|
72
|
+
* Record usage of a skill
|
|
73
|
+
*/
|
|
74
|
+
recordSkillMetric(skill: string, success: boolean, durationMs: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get metrics for all skills
|
|
77
|
+
*/
|
|
78
|
+
getSkillMetrics(): any[];
|
|
67
79
|
close(): void;
|
|
68
80
|
}
|
|
69
81
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/memory/store.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;gBAEvC,MAAM,EAAE,MAAM;IAY1B;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IASzC;;OAEG;IACH,OAAO,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/memory/store.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;gBAEvC,MAAM,EAAE,MAAM;IAY1B;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IASzC;;OAEG;IACH,OAAO,CAAC,OAAO;IAgHf;;OAEG;IACH,IAAI,CACA,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,UAAU,CAAa,EACxC,MAAM,GAAE,MAAM,CAAC,QAAQ,CAAU,EACjC,IAAI,GAAE,MAAM,EAAO,GACpB,MAAM;IAYT;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,kBAAkB,EAAE;IAqCvD;;OAEG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,SAAK,GAAG,MAAM,EAAE;IAqBzD;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOpC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS3B;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM;IAkBlD;;OAEG;IACH,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAoBhG,OAAO,CAAC,QAAQ;IAOhB,WAAW,CAAC,KAAK,SAAK,GAAG,GAAG,EAAE;IAM9B;;OAEG;IACH,gBAAgB,CAAC,IAAI,GAAE,IAAiB,GAAG,GAAG,EAAE;IAgBhD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAmB5E;;OAEG;IACH,eAAe,IAAI,GAAG,EAAE;IAMxB,KAAK,IAAI,IAAI;CAIhB"}
|
package/dist/src/memory/store.js
CHANGED
|
@@ -123,6 +123,16 @@ export class MemoryStore {
|
|
|
123
123
|
CREATE INDEX IF NOT EXISTS idx_tasks_goal ON tasks(goal_id);
|
|
124
124
|
CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
|
|
125
125
|
CREATE INDEX IF NOT EXISTS idx_audit_entity ON audit_events(entity_type, entity_id);
|
|
126
|
+
|
|
127
|
+
-- Skill Metrics table
|
|
128
|
+
CREATE TABLE IF NOT EXISTS skill_metrics (
|
|
129
|
+
skill TEXT PRIMARY KEY,
|
|
130
|
+
calls INTEGER DEFAULT 0,
|
|
131
|
+
successes INTEGER DEFAULT 0,
|
|
132
|
+
failures INTEGER DEFAULT 0,
|
|
133
|
+
total_duration_ms INTEGER DEFAULT 0,
|
|
134
|
+
last_used DATETIME
|
|
135
|
+
);
|
|
126
136
|
`);
|
|
127
137
|
}
|
|
128
138
|
// ─── Memory Operations ─────────────────────────────────────
|
|
@@ -150,7 +160,16 @@ export class MemoryStore {
|
|
|
150
160
|
ORDER BY fts.rank
|
|
151
161
|
LIMIT ?
|
|
152
162
|
`);
|
|
153
|
-
|
|
163
|
+
// Sanitize query for FTS5: remove special chars that break syntax
|
|
164
|
+
// or wrap in quotes if you want exact match.
|
|
165
|
+
// For now, let's just strip non-alphanumeric except spaces.
|
|
166
|
+
const safeQuery = query.replace(/[^\w\s]/g, ' ').trim();
|
|
167
|
+
// If query becomes empty after sanitization, return empty results
|
|
168
|
+
if (!safeQuery)
|
|
169
|
+
return [];
|
|
170
|
+
// Use OR logic for multiple terms for broader context
|
|
171
|
+
const ftsQuery = safeQuery.split(/\s+/).join(' OR ');
|
|
172
|
+
const results = stmt.all(ftsQuery, limit);
|
|
154
173
|
// Update accessed_at for returned memories
|
|
155
174
|
const updateStmt = this.db.prepare(`
|
|
156
175
|
UPDATE memories SET accessed_at = datetime('now') WHERE id = ?
|
|
@@ -246,6 +265,43 @@ export class MemoryStore {
|
|
|
246
265
|
getAuditLog(limit = 20) {
|
|
247
266
|
return this.db.prepare('SELECT * FROM audit_events ORDER BY created_at DESC LIMIT ?').all(limit);
|
|
248
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Get activity for a specific date (default: today)
|
|
270
|
+
*/
|
|
271
|
+
getDailyActivity(date = new Date()) {
|
|
272
|
+
const startOfDay = new Date(date);
|
|
273
|
+
startOfDay.setHours(0, 0, 0, 0);
|
|
274
|
+
const endOfDay = new Date(date);
|
|
275
|
+
endOfDay.setHours(23, 59, 59, 999);
|
|
276
|
+
return this.db.prepare(`
|
|
277
|
+
SELECT * FROM audit_events
|
|
278
|
+
WHERE created_at BETWEEN ? AND ?
|
|
279
|
+
ORDER BY created_at ASC
|
|
280
|
+
`).all(startOfDay.toISOString(), endOfDay.toISOString());
|
|
281
|
+
}
|
|
282
|
+
// ─── Skill Metrics ───────────────────────────────────────
|
|
283
|
+
/**
|
|
284
|
+
* Record usage of a skill
|
|
285
|
+
*/
|
|
286
|
+
recordSkillMetric(skill, success, durationMs) {
|
|
287
|
+
const stmt = this.db.prepare(`
|
|
288
|
+
INSERT INTO skill_metrics (skill, calls, successes, failures, total_duration_ms, last_used)
|
|
289
|
+
VALUES (?, 1, ?, ?, ?, datetime('now'))
|
|
290
|
+
ON CONFLICT(skill) DO UPDATE SET
|
|
291
|
+
calls = calls + 1,
|
|
292
|
+
successes = successes + (excluded.successes),
|
|
293
|
+
failures = failures + (excluded.failures),
|
|
294
|
+
total_duration_ms = total_duration_ms + excluded.total_duration_ms,
|
|
295
|
+
last_used = datetime('now')
|
|
296
|
+
`);
|
|
297
|
+
stmt.run(skill, success ? 1 : 0, success ? 0 : 1, durationMs);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Get metrics for all skills
|
|
301
|
+
*/
|
|
302
|
+
getSkillMetrics() {
|
|
303
|
+
return this.db.prepare('SELECT * FROM skill_metrics ORDER BY calls DESC').all();
|
|
304
|
+
}
|
|
249
305
|
// ─── Cleanup ─────────────────────────────────────────────
|
|
250
306
|
close() {
|
|
251
307
|
this.db.close();
|