@ariso-ai/ivan 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -21
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -1
- package/dist/config.js.map +1 -1
- package/dist/database/migrations/009_create_memory_tables.d.ts +3 -0
- package/dist/database/migrations/009_create_memory_tables.d.ts.map +1 -0
- package/dist/database/migrations/009_create_memory_tables.js +35 -0
- package/dist/database/migrations/009_create_memory_tables.js.map +1 -0
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/services/address-task-executor.d.ts.map +1 -1
- package/dist/services/address-task-executor.js +5 -3
- package/dist/services/address-task-executor.js.map +1 -1
- package/dist/services/embedding-service.d.ts +12 -0
- package/dist/services/embedding-service.d.ts.map +1 -0
- package/dist/services/embedding-service.js +51 -0
- package/dist/services/embedding-service.js.map +1 -0
- package/dist/services/git-manager.d.ts +1 -0
- package/dist/services/git-manager.d.ts.map +1 -1
- package/dist/services/git-manager.js +10 -4
- package/dist/services/git-manager.js.map +1 -1
- package/dist/services/memory-service.d.ts +26 -0
- package/dist/services/memory-service.d.ts.map +1 -0
- package/dist/services/memory-service.js +128 -0
- package/dist/services/memory-service.js.map +1 -0
- package/package.json +2 -2
- package/dist/agent.d.ts +0 -11
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -48
- package/dist/agent.js.map +0 -1
- package/dist/config/config.d.ts +0 -20
- package/dist/config/config.d.ts.map +0 -1
- package/dist/config/config.js +0 -187
- package/dist/config/config.js.map +0 -1
- package/dist/database/database.d.ts +0 -12
- package/dist/database/database.d.ts.map +0 -1
- package/dist/database/database.js +0 -45
- package/dist/database/database.js.map +0 -1
- package/dist/database/migrations/001_initial_schema.d.ts +0 -3
- package/dist/database/migrations/001_initial_schema.d.ts.map +0 -1
- package/dist/database/migrations/001_initial_schema.js +0 -66
- package/dist/database/migrations/001_initial_schema.js.map +0 -1
- package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.d.ts +0 -3
- package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.d.ts.map +0 -1
- package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.js +0 -15
- package/dist/database/migrations/006_add_comment_url_and_commit_to_tasks.js.map +0 -1
- package/dist/scripts/task-executor.d.ts +0 -3
- package/dist/scripts/task-executor.d.ts.map +0 -1
- package/dist/scripts/task-executor.js +0 -139
- package/dist/scripts/task-executor.js.map +0 -1
- package/dist/scripts/task-planner.d.ts +0 -3
- package/dist/scripts/task-planner.d.ts.map +0 -1
- package/dist/scripts/task-planner.js +0 -81
- package/dist/scripts/task-planner.js.map +0 -1
- package/dist/services/claude-planner.d.ts +0 -15
- package/dist/services/claude-planner.d.ts.map +0 -1
- package/dist/services/claude-planner.js +0 -107
- package/dist/services/claude-planner.js.map +0 -1
- package/dist/services/docker-orchestrator.d.ts +0 -11
- package/dist/services/docker-orchestrator.d.ts.map +0 -1
- package/dist/services/docker-orchestrator.js +0 -85
- package/dist/services/docker-orchestrator.js.map +0 -1
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Kysely } from 'kysely';
|
|
2
|
-
import { Database as DatabaseSchema } from './types.js';
|
|
3
|
-
export declare class DatabaseManager {
|
|
4
|
-
private db;
|
|
5
|
-
private dbPath;
|
|
6
|
-
constructor();
|
|
7
|
-
initialize(): Promise<void>;
|
|
8
|
-
private runMigrations;
|
|
9
|
-
getDatabase(): Kysely<DatabaseSchema>;
|
|
10
|
-
close(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAM/C,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAIxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAS;;IAmBV,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAY1B,aAAa;IAKpB,WAAW,IAAI,MAAM,CAAC,cAAc,CAAC;IAI/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Kysely, SqliteDialect } from 'kysely';
|
|
2
|
-
import Database from 'better-sqlite3';
|
|
3
|
-
import * as path from 'path';
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import * as os from 'os';
|
|
6
|
-
import chalk from 'chalk';
|
|
7
|
-
import { MigrationRunner } from './migration.js';
|
|
8
|
-
import { migrations } from './migrations/index.js';
|
|
9
|
-
export class DatabaseManager {
|
|
10
|
-
db;
|
|
11
|
-
dbPath;
|
|
12
|
-
constructor() {
|
|
13
|
-
const ivanDir = path.join(os.homedir(), '.ivan');
|
|
14
|
-
this.dbPath = path.join(ivanDir, 'db.sqlite');
|
|
15
|
-
if (!fs.existsSync(ivanDir)) {
|
|
16
|
-
fs.mkdirSync(ivanDir, { recursive: true });
|
|
17
|
-
}
|
|
18
|
-
const sqlite = new Database(this.dbPath);
|
|
19
|
-
this.db = new Kysely({
|
|
20
|
-
dialect: new SqliteDialect({
|
|
21
|
-
database: sqlite
|
|
22
|
-
})
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
async initialize() {
|
|
26
|
-
console.log(chalk.gray('🗄️ Initializing database...'));
|
|
27
|
-
const dbExists = fs.existsSync(this.dbPath);
|
|
28
|
-
if (!dbExists) {
|
|
29
|
-
console.log(chalk.gray('📁 Creating database file...'));
|
|
30
|
-
}
|
|
31
|
-
await this.runMigrations();
|
|
32
|
-
console.log(chalk.green('✓ Database initialized'));
|
|
33
|
-
}
|
|
34
|
-
async runMigrations() {
|
|
35
|
-
const migrationRunner = new MigrationRunner(this.db);
|
|
36
|
-
await migrationRunner.runMigrations(migrations);
|
|
37
|
-
}
|
|
38
|
-
getDatabase() {
|
|
39
|
-
return this.db;
|
|
40
|
-
}
|
|
41
|
-
async close() {
|
|
42
|
-
await this.db.destroy();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=database.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,OAAO,eAAe;IAClB,EAAE,CAAyB;IAC3B,MAAM,CAAS;IAEvB;QACE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,CAAiB;YACnC,OAAO,EAAE,IAAI,aAAa,CAAC;gBACzB,QAAQ,EAAE,MAAM;aACjB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"001_initial_schema.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/001_initial_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,aAAa,EAAE,SAuE3B,CAAC"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
export const initialSchema = {
|
|
2
|
-
id: '001_initial_schema',
|
|
3
|
-
name: 'Create initial schema with jobs, tasks, agents, and executions',
|
|
4
|
-
async up(db) {
|
|
5
|
-
await db.schema
|
|
6
|
-
.createTable('jobs')
|
|
7
|
-
.addColumn('id', 'integer', (col) => col.primaryKey().autoIncrement())
|
|
8
|
-
.addColumn('title', 'text', (col) => col.notNull())
|
|
9
|
-
.addColumn('description', 'text')
|
|
10
|
-
.addColumn('status', 'text', (col) => col.notNull().defaultTo('pending'))
|
|
11
|
-
.addColumn('repository', 'text', (col) => col.notNull())
|
|
12
|
-
.addColumn('created_at', 'text', (col) => col.notNull().defaultTo('CURRENT_TIMESTAMP'))
|
|
13
|
-
.addColumn('updated_at', 'text', (col) => col.notNull().defaultTo('CURRENT_TIMESTAMP'))
|
|
14
|
-
.addColumn('completed_at', 'text')
|
|
15
|
-
.execute();
|
|
16
|
-
await db.schema
|
|
17
|
-
.createTable('tasks')
|
|
18
|
-
.addColumn('id', 'integer', (col) => col.primaryKey().autoIncrement())
|
|
19
|
-
.addColumn('job_id', 'integer', (col) => col.notNull().references('jobs.id').onDelete('cascade'))
|
|
20
|
-
.addColumn('title', 'text', (col) => col.notNull())
|
|
21
|
-
.addColumn('description', 'text')
|
|
22
|
-
.addColumn('status', 'text', (col) => col.notNull().defaultTo('pending'))
|
|
23
|
-
.addColumn('order_index', 'integer', (col) => col.notNull().defaultTo(0))
|
|
24
|
-
.addColumn('created_at', 'text', (col) => col.notNull().defaultTo('CURRENT_TIMESTAMP'))
|
|
25
|
-
.addColumn('updated_at', 'text', (col) => col.notNull().defaultTo('CURRENT_TIMESTAMP'))
|
|
26
|
-
.addColumn('completed_at', 'text')
|
|
27
|
-
.execute();
|
|
28
|
-
await db.schema
|
|
29
|
-
.createTable('agents')
|
|
30
|
-
.addColumn('id', 'integer', (col) => col.primaryKey().autoIncrement())
|
|
31
|
-
.addColumn('name', 'text', (col) => col.notNull())
|
|
32
|
-
.addColumn('type', 'text', (col) => col.notNull())
|
|
33
|
-
.addColumn('config', 'text')
|
|
34
|
-
.addColumn('created_at', 'text', (col) => col.notNull().defaultTo('CURRENT_TIMESTAMP'))
|
|
35
|
-
.execute();
|
|
36
|
-
await db.schema
|
|
37
|
-
.createTable('executions')
|
|
38
|
-
.addColumn('id', 'integer', (col) => col.primaryKey().autoIncrement())
|
|
39
|
-
.addColumn('task_id', 'integer', (col) => col.notNull().references('tasks.id').onDelete('cascade'))
|
|
40
|
-
.addColumn('agent_id', 'integer', (col) => col.notNull().references('agents.id'))
|
|
41
|
-
.addColumn('input', 'text', (col) => col.notNull())
|
|
42
|
-
.addColumn('output', 'text')
|
|
43
|
-
.addColumn('status', 'text', (col) => col.notNull().defaultTo('running'))
|
|
44
|
-
.addColumn('started_at', 'text', (col) => col.notNull().defaultTo('CURRENT_TIMESTAMP'))
|
|
45
|
-
.addColumn('completed_at', 'text')
|
|
46
|
-
.addColumn('error_message', 'text')
|
|
47
|
-
.execute();
|
|
48
|
-
await db.schema
|
|
49
|
-
.createIndex('idx_tasks_job_id')
|
|
50
|
-
.on('tasks')
|
|
51
|
-
.column('job_id')
|
|
52
|
-
.execute();
|
|
53
|
-
await db.schema
|
|
54
|
-
.createIndex('idx_executions_task_id')
|
|
55
|
-
.on('executions')
|
|
56
|
-
.column('task_id')
|
|
57
|
-
.execute();
|
|
58
|
-
},
|
|
59
|
-
async down(db) {
|
|
60
|
-
await db.schema.dropTable('executions').execute();
|
|
61
|
-
await db.schema.dropTable('tasks').execute();
|
|
62
|
-
await db.schema.dropTable('agents').execute();
|
|
63
|
-
await db.schema.dropTable('jobs').execute();
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=001_initial_schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"001_initial_schema.js","sourceRoot":"","sources":["../../../src/database/migrations/001_initial_schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"006_add_comment_url_and_commit_to_tasks.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/006_add_comment_url_and_commit_to_tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,SAAS,EAAE,SAavB,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const migration = {
|
|
2
|
-
id: 6,
|
|
3
|
-
name: 'add_comment_url_and_commit_to_tasks',
|
|
4
|
-
up: `
|
|
5
|
-
ALTER TABLE tasks
|
|
6
|
-
ADD COLUMN comment_url TEXT,
|
|
7
|
-
ADD COLUMN commit TEXT
|
|
8
|
-
`,
|
|
9
|
-
down: `
|
|
10
|
-
ALTER TABLE tasks
|
|
11
|
-
DROP COLUMN comment_url,
|
|
12
|
-
DROP COLUMN commit
|
|
13
|
-
`
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=006_add_comment_url_and_commit_to_tasks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"006_add_comment_url_and_commit_to_tasks.js","sourceRoot":"","sources":["../../../src/database/migrations/006_add_comment_url_and_commit_to_tasks.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,qCAAqC;IAC3C,EAAE,EAAE;;;;GAIH;IACD,IAAI,EAAE;;;;GAIL;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/scripts/task-executor.ts"],"names":[],"mappings":""}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { exec } from 'child_process';
|
|
3
|
-
import { promisify } from 'util';
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import { Kysely, SqliteDialect } from 'kysely';
|
|
6
|
-
import Database from 'better-sqlite3';
|
|
7
|
-
import OpenAI from 'openai';
|
|
8
|
-
const execAsync = promisify(exec);
|
|
9
|
-
async function executeCommand(command) {
|
|
10
|
-
try {
|
|
11
|
-
const { stdout, stderr } = await execAsync(command);
|
|
12
|
-
return { stdout, stderr };
|
|
13
|
-
}
|
|
14
|
-
catch (error) {
|
|
15
|
-
console.error(`Command failed: ${command}`);
|
|
16
|
-
console.error(error);
|
|
17
|
-
throw error;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
async function generateCommitMessage(changes) {
|
|
21
|
-
const apiKey = process.env.OPENAI_API_KEY;
|
|
22
|
-
if (!apiKey) {
|
|
23
|
-
console.warn('OpenAI API key not provided, using default commit message');
|
|
24
|
-
return `feat: complete task ${process.env.TASK_TITLE}`;
|
|
25
|
-
}
|
|
26
|
-
const openai = new OpenAI({
|
|
27
|
-
apiKey: apiKey
|
|
28
|
-
});
|
|
29
|
-
const prompt = `Based on the following git diff, generate a concise and meaningful commit message.
|
|
30
|
-
The message should follow conventional commit format (feat:, fix:, docs:, etc.) and be under 72 characters.
|
|
31
|
-
Respond with ONLY the commit message, no other text.
|
|
32
|
-
|
|
33
|
-
Changes:
|
|
34
|
-
${changes.substring(0, 2000)}`;
|
|
35
|
-
try {
|
|
36
|
-
const completion = await openai.chat.completions.create({
|
|
37
|
-
model: 'gpt-4',
|
|
38
|
-
messages: [
|
|
39
|
-
{
|
|
40
|
-
role: 'system',
|
|
41
|
-
content: 'You are a helpful assistant that generates clear, concise git commit messages.'
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
role: 'user',
|
|
45
|
-
content: prompt
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
temperature: 0.3,
|
|
49
|
-
max_tokens: 100
|
|
50
|
-
});
|
|
51
|
-
const message = completion.choices[0]?.message?.content?.trim();
|
|
52
|
-
return message || `feat: complete task ${process.env.TASK_TITLE}`;
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
console.error('Failed to generate commit message:', error);
|
|
56
|
-
return `feat: complete task ${process.env.TASK_TITLE}`;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
async function main() {
|
|
60
|
-
const env = process.env;
|
|
61
|
-
console.log('\n📦 Task Executor Starting');
|
|
62
|
-
console.log(`Task: ${env.TASK_TITLE}`);
|
|
63
|
-
console.log(`Description: ${env.TASK_DESCRIPTION}\n`);
|
|
64
|
-
try {
|
|
65
|
-
// Clone repository
|
|
66
|
-
console.log('📥 Cloning repository...');
|
|
67
|
-
await executeCommand(`git clone ${env.REPOSITORY} /workspace/repo`);
|
|
68
|
-
process.chdir('/workspace/repo');
|
|
69
|
-
// Create and checkout branch
|
|
70
|
-
console.log(`🌿 Creating branch: ${env.BRANCH_NAME}`);
|
|
71
|
-
await executeCommand(`git checkout -b ${env.BRANCH_NAME}`);
|
|
72
|
-
// Execute Claude Code with the task
|
|
73
|
-
console.log('🤖 Running Claude Code...');
|
|
74
|
-
const claudeCommand = `echo '${env.TASK_DESCRIPTION.replace(/'/g, "'\\''")}' | claude --dangerously-skip-permissions`;
|
|
75
|
-
await executeCommand(claudeCommand);
|
|
76
|
-
// Check for changes
|
|
77
|
-
const { stdout: statusOutput } = await executeCommand('git status --porcelain');
|
|
78
|
-
if (statusOutput.trim()) {
|
|
79
|
-
console.log('📝 Changes detected, preparing commit...');
|
|
80
|
-
// Add all changes
|
|
81
|
-
await executeCommand('git add -A');
|
|
82
|
-
// Get diff for commit message
|
|
83
|
-
const { stdout: diffOutput } = await executeCommand('git diff --cached');
|
|
84
|
-
// Generate commit message
|
|
85
|
-
console.log('✍️ Generating commit message...');
|
|
86
|
-
const commitMessage = await generateCommitMessage(diffOutput);
|
|
87
|
-
// Commit changes
|
|
88
|
-
console.log(`💾 Committing: ${commitMessage}`);
|
|
89
|
-
await executeCommand(`git commit -m "${commitMessage}"`);
|
|
90
|
-
console.log('✅ Task completed successfully!');
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
console.log('ℹ️ No changes were made by Claude Code');
|
|
94
|
-
}
|
|
95
|
-
// Update task status in database
|
|
96
|
-
if (env.IVAN_DB_PATH && fs.existsSync(env.IVAN_DB_PATH)) {
|
|
97
|
-
const sqlite = new Database(env.IVAN_DB_PATH);
|
|
98
|
-
const db = new Kysely({
|
|
99
|
-
dialect: new SqliteDialect({
|
|
100
|
-
database: sqlite
|
|
101
|
-
})
|
|
102
|
-
});
|
|
103
|
-
await db
|
|
104
|
-
.updateTable('tasks')
|
|
105
|
-
.set({
|
|
106
|
-
status: 'completed',
|
|
107
|
-
completed_at: new Date().toISOString(),
|
|
108
|
-
updated_at: new Date().toISOString()
|
|
109
|
-
})
|
|
110
|
-
.where('id', '=', parseInt(env.TASK_ID))
|
|
111
|
-
.execute();
|
|
112
|
-
await db.destroy();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
console.error('❌ Task execution failed:', error);
|
|
117
|
-
// Update task status to failed
|
|
118
|
-
if (env.IVAN_DB_PATH && fs.existsSync(env.IVAN_DB_PATH)) {
|
|
119
|
-
const sqlite = new Database(env.IVAN_DB_PATH);
|
|
120
|
-
const db = new Kysely({
|
|
121
|
-
dialect: new SqliteDialect({
|
|
122
|
-
database: sqlite
|
|
123
|
-
})
|
|
124
|
-
});
|
|
125
|
-
await db
|
|
126
|
-
.updateTable('tasks')
|
|
127
|
-
.set({
|
|
128
|
-
status: 'failed',
|
|
129
|
-
updated_at: new Date().toISOString()
|
|
130
|
-
})
|
|
131
|
-
.where('id', '=', parseInt(env.TASK_ID))
|
|
132
|
-
.execute();
|
|
133
|
-
await db.destroy();
|
|
134
|
-
}
|
|
135
|
-
process.exit(1);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
main().catch(console.error);
|
|
139
|
-
//# sourceMappingURL=task-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../src/scripts/task-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-planner.d.ts","sourceRoot":"","sources":["../../src/scripts/task-planner.ts"],"names":[],"mappings":""}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { spawn } from 'child_process';
|
|
3
|
-
import { exec } from 'child_process';
|
|
4
|
-
import { promisify } from 'util';
|
|
5
|
-
const execAsync = promisify(exec);
|
|
6
|
-
async function executeCommand(command) {
|
|
7
|
-
try {
|
|
8
|
-
const { stdout, stderr } = await execAsync(command);
|
|
9
|
-
return { stdout, stderr };
|
|
10
|
-
}
|
|
11
|
-
catch (error) {
|
|
12
|
-
console.error(`Command failed: ${command}`);
|
|
13
|
-
console.error(error);
|
|
14
|
-
throw error;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
async function main() {
|
|
18
|
-
const env = process.env;
|
|
19
|
-
console.log('📋 Task Planner Starting');
|
|
20
|
-
console.log(`Request: ${env.USER_REQUEST}\n`);
|
|
21
|
-
try {
|
|
22
|
-
// Clone repository
|
|
23
|
-
console.log('📥 Cloning repository...');
|
|
24
|
-
await executeCommand(`git clone ${env.REPOSITORY} /workspace/repo`);
|
|
25
|
-
process.chdir('/workspace/repo');
|
|
26
|
-
const prompt = 'Say the word "maximum"';
|
|
27
|
-
console.log('🤔 Planning tasks with Claude...');
|
|
28
|
-
// Use spawn to call Claude with real-time output
|
|
29
|
-
const claudeProcess = spawn('claude', [
|
|
30
|
-
'-p',
|
|
31
|
-
`"${prompt}"`,
|
|
32
|
-
'--output-format',
|
|
33
|
-
'json',
|
|
34
|
-
'--permission-mode',
|
|
35
|
-
'plan'
|
|
36
|
-
]);
|
|
37
|
-
let stdout = '';
|
|
38
|
-
let stderr = '';
|
|
39
|
-
claudeProcess.stdout.on('data', (data) => {
|
|
40
|
-
const chunk = data.toString();
|
|
41
|
-
stdout += chunk;
|
|
42
|
-
process.stdout.write(chunk);
|
|
43
|
-
});
|
|
44
|
-
claudeProcess.stderr.on('data', (data) => {
|
|
45
|
-
const chunk = data.toString();
|
|
46
|
-
stderr += chunk;
|
|
47
|
-
process.stderr.write(chunk);
|
|
48
|
-
});
|
|
49
|
-
await new Promise((resolve, reject) => {
|
|
50
|
-
claudeProcess.on('close', (code) => {
|
|
51
|
-
if (code !== 0) {
|
|
52
|
-
reject(new Error(`Claude CLI exited with code ${code}: ${stderr}`));
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
resolve();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
claudeProcess.on('error', (error) => {
|
|
59
|
-
reject(new Error(`Failed to start Claude CLI: ${error}`));
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
// Parse the Claude CLI response
|
|
63
|
-
const claudeResponse = JSON.parse(stdout);
|
|
64
|
-
// Extract the JSON from the result field (may be wrapped in ```json blocks)
|
|
65
|
-
let resultContent = claudeResponse.result;
|
|
66
|
-
// Remove markdown code blocks if present
|
|
67
|
-
resultContent = resultContent.replace(/^```json\s*/, '').replace(/\s*```$/, '');
|
|
68
|
-
const response = JSON.parse(resultContent);
|
|
69
|
-
console.log(`✓ Planned ${response.tasks.length} tasks`);
|
|
70
|
-
// Output the result as JSON for the parent process to read
|
|
71
|
-
console.log('TASK_PLAN_START');
|
|
72
|
-
console.log(JSON.stringify(response));
|
|
73
|
-
console.log('TASK_PLAN_END');
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
console.error('❌ Task planning failed:', error);
|
|
77
|
-
process.exit(1);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
main().catch(console.error);
|
|
81
|
-
//# sourceMappingURL=task-planner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-planner.js","sourceRoot":"","sources":["../../src/scripts/task-planner.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAiBlC,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAA4B,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,cAAc,CAAC,aAAa,GAAG,CAAC,UAAU,kBAAkB,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,wBAAwB,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAEhD,iDAAiD;QACjD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE;YACpC,IAAI;YACJ,IAAI,MAAM,GAAG;YACb,iBAAiB;YACjB,MAAM;YACN,mBAAmB;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE1C,4EAA4E;QAC5E,IAAI,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;QAE1C,yCAAyC;QACzC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEhF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAqB,CAAC;QAE/D,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;QAExD,2DAA2D;QAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface TaskPlan {
|
|
2
|
-
title: string;
|
|
3
|
-
description: string;
|
|
4
|
-
order: number;
|
|
5
|
-
}
|
|
6
|
-
export interface TaskPlanResponse {
|
|
7
|
-
tasks: TaskPlan[];
|
|
8
|
-
}
|
|
9
|
-
export declare class ClaudePlannerService {
|
|
10
|
-
private repository;
|
|
11
|
-
private anthropicApiKey;
|
|
12
|
-
constructor(repository: string, anthropicApiKey: string);
|
|
13
|
-
planTasks(userRequest: string): Promise<TaskPlanResponse>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=claude-planner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-planner.d.ts","sourceRoot":"","sources":["../../src/services/claude-planner.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAS;gBAEpB,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAKjD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA+GhE"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { exec, spawn } from 'child_process';
|
|
2
|
-
import { promisify } from 'util';
|
|
3
|
-
import * as path from 'path';
|
|
4
|
-
import * as os from 'os';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
const execAsync = promisify(exec);
|
|
7
|
-
export class ClaudePlannerService {
|
|
8
|
-
repository;
|
|
9
|
-
anthropicApiKey;
|
|
10
|
-
constructor(repository, anthropicApiKey) {
|
|
11
|
-
this.repository = repository;
|
|
12
|
-
this.anthropicApiKey = anthropicApiKey;
|
|
13
|
-
}
|
|
14
|
-
async planTasks(userRequest) {
|
|
15
|
-
console.log(chalk.gray('🤔 Planning tasks with Claude Code...'));
|
|
16
|
-
try {
|
|
17
|
-
const homeDir = os.homedir();
|
|
18
|
-
const scriptPath = path.join(process.cwd(), 'dist', 'scripts', 'task-planner.js');
|
|
19
|
-
console.log(chalk.gray('Starting planning container...'));
|
|
20
|
-
// Start container in background
|
|
21
|
-
const containerName = `ivan-planner-${Date.now()}`;
|
|
22
|
-
const startCommand = `docker run -d --name ${containerName} \
|
|
23
|
-
-e USER_REQUEST="${userRequest.replace(/"/g, '\\"')}" \
|
|
24
|
-
-e REPOSITORY="${this.repository}" \
|
|
25
|
-
-e HOST_HOME="${homeDir}" \
|
|
26
|
-
-e ANTHROPIC_API_KEY="${this.anthropicApiKey}" \
|
|
27
|
-
-w /workspace \
|
|
28
|
-
node:24-alpine \
|
|
29
|
-
sleep 300`;
|
|
30
|
-
await execAsync(startCommand);
|
|
31
|
-
let stdout = '';
|
|
32
|
-
let stderr = '';
|
|
33
|
-
try {
|
|
34
|
-
// Create app directory and copy scripts to container
|
|
35
|
-
await execAsync(`docker exec ${containerName} mkdir -p /app`);
|
|
36
|
-
await execAsync(`docker cp "${scriptPath}" ${containerName}:/app/task-planner.js`);
|
|
37
|
-
const setupScript = path.join(process.cwd(), 'src', 'scripts', 'setup-container.sh');
|
|
38
|
-
await execAsync(`docker cp "${setupScript}" ${containerName}:/app/setup-container.sh`);
|
|
39
|
-
// Copy SSH and git configs
|
|
40
|
-
await execAsync(`docker exec ${containerName} mkdir -p /root/.ssh /root/.claude/plugins`);
|
|
41
|
-
await execAsync(`docker cp "${homeDir}/.ssh/." ${containerName}:/root/.ssh/`).catch(() => { });
|
|
42
|
-
await execAsync(`docker cp "${homeDir}/.claude/." ${containerName}:/root/.claude/`).catch(() => { });
|
|
43
|
-
await execAsync(`docker cp "${homeDir}/.gitconfig" ${containerName}:/root/.gitconfig`).catch(() => { });
|
|
44
|
-
console.log('running docker');
|
|
45
|
-
// Execute setup and task planning with streaming output
|
|
46
|
-
const dockerProcess = spawn('docker', [
|
|
47
|
-
'exec', containerName, 'sh', '-c',
|
|
48
|
-
'chmod +x /app/setup-container.sh && /app/setup-container.sh && echo "Starting task planner..." && CLAUDE_CONFIG_DIR=/root/.claude node /app/task-planner.js'
|
|
49
|
-
]);
|
|
50
|
-
dockerProcess.stdout.on('data', (data) => {
|
|
51
|
-
const chunk = data.toString();
|
|
52
|
-
stdout += chunk;
|
|
53
|
-
process.stdout.write(chunk);
|
|
54
|
-
});
|
|
55
|
-
dockerProcess.stderr.on('data', (data) => {
|
|
56
|
-
const chunk = data.toString();
|
|
57
|
-
stderr += chunk;
|
|
58
|
-
process.stderr.write(chunk);
|
|
59
|
-
});
|
|
60
|
-
await new Promise((resolve, reject) => {
|
|
61
|
-
dockerProcess.on('close', (code) => {
|
|
62
|
-
if (code !== 0) {
|
|
63
|
-
reject(new Error(`Docker exec exited with code ${code}`));
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
resolve();
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
dockerProcess.on('error', (error) => {
|
|
70
|
-
reject(new Error(`Failed to execute docker command: ${error}`));
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
console.log(chalk.gray('=== CONTAINER OUTPUT START ==='));
|
|
74
|
-
console.log(stdout);
|
|
75
|
-
console.log(chalk.gray('=== CONTAINER OUTPUT END ==='));
|
|
76
|
-
if (stderr) {
|
|
77
|
-
console.log(chalk.yellow('=== CONTAINER STDERR START ==='));
|
|
78
|
-
console.log(stderr);
|
|
79
|
-
console.log(chalk.yellow('=== CONTAINER STDERR END ==='));
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
finally {
|
|
83
|
-
// Clean up container
|
|
84
|
-
await execAsync(`docker rm -f ${containerName}`).catch(() => { });
|
|
85
|
-
}
|
|
86
|
-
// Extract the JSON response from between the markers
|
|
87
|
-
const startMarker = 'TASK_PLAN_START';
|
|
88
|
-
const endMarker = 'TASK_PLAN_END';
|
|
89
|
-
const startIndex = stdout.indexOf(startMarker);
|
|
90
|
-
const endIndex = stdout.indexOf(endMarker);
|
|
91
|
-
if (startIndex === -1 || endIndex === -1) {
|
|
92
|
-
console.log(chalk.red('Failed to find task plan in output:'));
|
|
93
|
-
console.log(stdout);
|
|
94
|
-
throw new Error('Task plan markers not found in output');
|
|
95
|
-
}
|
|
96
|
-
const jsonString = stdout.substring(startIndex + startMarker.length, endIndex).trim();
|
|
97
|
-
const response = JSON.parse(jsonString);
|
|
98
|
-
console.log(chalk.green(`✓ Planned ${response.tasks.length} tasks`));
|
|
99
|
-
return response;
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
console.error(chalk.red('Failed to plan tasks:'), error);
|
|
103
|
-
throw new Error('Task planning failed');
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=claude-planner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-planner.js","sourceRoot":"","sources":["../../src/services/claude-planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { TaskTable } from '../database/types.js';
|
|
2
|
-
import { JobManager } from './job-manager.js';
|
|
3
|
-
export declare class DockerOrchestrator {
|
|
4
|
-
private jobManager;
|
|
5
|
-
private repository;
|
|
6
|
-
private openAiApiKey;
|
|
7
|
-
constructor(jobManager: JobManager, repository: string, openAiApiKey: string);
|
|
8
|
-
runTask(task: TaskTable): Promise<void>;
|
|
9
|
-
runAllTasks(jobId: number): Promise<void>;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=docker-orchestrator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docker-orchestrator.d.ts","sourceRoot":"","sources":["../../src/services/docker-orchestrator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;gBAEjB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAMtE,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DvC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAchD"}
|