chronicle-ai 0.0.1
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 +132 -0
- package/package.json +86 -0
- package/packages/README.md +139 -0
- package/packages/cli/README.md +92 -0
- package/packages/cli/bin/chronicle.js +2 -0
- package/packages/cli/dist/commands/add.d.ts +2 -0
- package/packages/cli/dist/commands/add.d.ts.map +1 -0
- package/packages/cli/dist/commands/add.js +82 -0
- package/packages/cli/dist/commands/add.js.map +1 -0
- package/packages/cli/dist/commands/diff.d.ts +11 -0
- package/packages/cli/dist/commands/diff.d.ts.map +1 -0
- package/packages/cli/dist/commands/diff.js +164 -0
- package/packages/cli/dist/commands/diff.js.map +1 -0
- package/packages/cli/dist/commands/init.d.ts +2 -0
- package/packages/cli/dist/commands/init.d.ts.map +1 -0
- package/packages/cli/dist/commands/init.js +54 -0
- package/packages/cli/dist/commands/init.js.map +1 -0
- package/packages/cli/dist/commands/list.d.ts +2 -0
- package/packages/cli/dist/commands/list.d.ts.map +1 -0
- package/packages/cli/dist/commands/list.js +62 -0
- package/packages/cli/dist/commands/list.js.map +1 -0
- package/packages/cli/dist/commands/log.d.ts +4 -0
- package/packages/cli/dist/commands/log.d.ts.map +1 -0
- package/packages/cli/dist/commands/log.js +223 -0
- package/packages/cli/dist/commands/log.js.map +1 -0
- package/packages/cli/dist/commands/pause.d.ts +3 -0
- package/packages/cli/dist/commands/pause.d.ts.map +1 -0
- package/packages/cli/dist/commands/pause.js +49 -0
- package/packages/cli/dist/commands/pause.js.map +1 -0
- package/packages/cli/dist/commands/queue.d.ts +2 -0
- package/packages/cli/dist/commands/queue.d.ts.map +1 -0
- package/packages/cli/dist/commands/queue.js +96 -0
- package/packages/cli/dist/commands/queue.js.map +1 -0
- package/packages/cli/dist/commands/remove.d.ts +2 -0
- package/packages/cli/dist/commands/remove.d.ts.map +1 -0
- package/packages/cli/dist/commands/remove.js +80 -0
- package/packages/cli/dist/commands/remove.js.map +1 -0
- package/packages/cli/dist/commands/reset.d.ts +5 -0
- package/packages/cli/dist/commands/reset.d.ts.map +1 -0
- package/packages/cli/dist/commands/reset.js +90 -0
- package/packages/cli/dist/commands/reset.js.map +1 -0
- package/packages/cli/dist/commands/restart.d.ts +2 -0
- package/packages/cli/dist/commands/restart.d.ts.map +1 -0
- package/packages/cli/dist/commands/restart.js +72 -0
- package/packages/cli/dist/commands/restart.js.map +1 -0
- package/packages/cli/dist/commands/start.d.ts +2 -0
- package/packages/cli/dist/commands/start.d.ts.map +1 -0
- package/packages/cli/dist/commands/start.js +127 -0
- package/packages/cli/dist/commands/start.js.map +1 -0
- package/packages/cli/dist/commands/status.d.ts +2 -0
- package/packages/cli/dist/commands/status.d.ts.map +1 -0
- package/packages/cli/dist/commands/status.js +181 -0
- package/packages/cli/dist/commands/status.js.map +1 -0
- package/packages/cli/dist/commands/stop.d.ts +2 -0
- package/packages/cli/dist/commands/stop.d.ts.map +1 -0
- package/packages/cli/dist/commands/stop.js +64 -0
- package/packages/cli/dist/commands/stop.js.map +1 -0
- package/packages/cli/dist/index.d.ts +2 -0
- package/packages/cli/dist/index.d.ts.map +1 -0
- package/packages/cli/dist/index.js +85 -0
- package/packages/cli/dist/index.js.map +1 -0
- package/packages/cli/dist/utils/paths.d.ts +26 -0
- package/packages/cli/dist/utils/paths.d.ts.map +1 -0
- package/packages/cli/dist/utils/paths.js +183 -0
- package/packages/cli/dist/utils/paths.js.map +1 -0
- package/packages/cli/package.json +25 -0
- package/packages/daemon/README.md +83 -0
- package/packages/daemon/dist/ai_test.d.ts +2 -0
- package/packages/daemon/dist/ai_test.d.ts.map +1 -0
- package/packages/daemon/dist/ai_test.js +4 -0
- package/packages/daemon/dist/ai_test.js.map +1 -0
- package/packages/daemon/dist/index.d.ts +2 -0
- package/packages/daemon/dist/index.d.ts.map +1 -0
- package/packages/daemon/dist/index.js +147 -0
- package/packages/daemon/dist/index.js.map +1 -0
- package/packages/daemon/dist/jobs/AIProcessor.d.ts +6 -0
- package/packages/daemon/dist/jobs/AIProcessor.d.ts.map +1 -0
- package/packages/daemon/dist/jobs/AIProcessor.js +58 -0
- package/packages/daemon/dist/jobs/AIProcessor.js.map +1 -0
- package/packages/daemon/dist/jobs/DocProcessor.d.ts +8 -0
- package/packages/daemon/dist/jobs/DocProcessor.d.ts.map +1 -0
- package/packages/daemon/dist/jobs/DocProcessor.js +336 -0
- package/packages/daemon/dist/jobs/DocProcessor.js.map +1 -0
- package/packages/daemon/dist/jobs/FileProcessor.d.ts +7 -0
- package/packages/daemon/dist/jobs/FileProcessor.d.ts.map +1 -0
- package/packages/daemon/dist/jobs/FileProcessor.js +29 -0
- package/packages/daemon/dist/jobs/FileProcessor.js.map +1 -0
- package/packages/daemon/dist/jobs/SystemProcessor.d.ts +13 -0
- package/packages/daemon/dist/jobs/SystemProcessor.d.ts.map +1 -0
- package/packages/daemon/dist/jobs/SystemProcessor.js +38 -0
- package/packages/daemon/dist/jobs/SystemProcessor.js.map +1 -0
- package/packages/daemon/dist/jobs/UpdateProcessor.d.ts +21 -0
- package/packages/daemon/dist/jobs/UpdateProcessor.d.ts.map +1 -0
- package/packages/daemon/dist/jobs/UpdateProcessor.js +222 -0
- package/packages/daemon/dist/jobs/UpdateProcessor.js.map +1 -0
- package/packages/daemon/dist/services/AIService.d.ts +90 -0
- package/packages/daemon/dist/services/AIService.d.ts.map +1 -0
- package/packages/daemon/dist/services/AIService.js +451 -0
- package/packages/daemon/dist/services/AIService.js.map +1 -0
- package/packages/daemon/dist/services/ConfigService.d.ts +30 -0
- package/packages/daemon/dist/services/ConfigService.d.ts.map +1 -0
- package/packages/daemon/dist/services/ConfigService.js +69 -0
- package/packages/daemon/dist/services/ConfigService.js.map +1 -0
- package/packages/daemon/dist/services/DatabaseService.d.ts +204 -0
- package/packages/daemon/dist/services/DatabaseService.d.ts.map +1 -0
- package/packages/daemon/dist/services/DatabaseService.js +692 -0
- package/packages/daemon/dist/services/DatabaseService.js.map +1 -0
- package/packages/daemon/dist/services/GitService.d.ts +12 -0
- package/packages/daemon/dist/services/GitService.d.ts.map +1 -0
- package/packages/daemon/dist/services/GitService.js +68 -0
- package/packages/daemon/dist/services/GitService.js.map +1 -0
- package/packages/daemon/dist/services/QueueService.d.ts +16 -0
- package/packages/daemon/dist/services/QueueService.d.ts.map +1 -0
- package/packages/daemon/dist/services/QueueService.js +87 -0
- package/packages/daemon/dist/services/QueueService.js.map +1 -0
- package/packages/daemon/dist/services/TriggerService.d.ts +37 -0
- package/packages/daemon/dist/services/TriggerService.d.ts.map +1 -0
- package/packages/daemon/dist/services/TriggerService.js +150 -0
- package/packages/daemon/dist/services/TriggerService.js.map +1 -0
- package/packages/daemon/dist/services/WatcherService.d.ts +12 -0
- package/packages/daemon/dist/services/WatcherService.d.ts.map +1 -0
- package/packages/daemon/dist/services/WatcherService.js +77 -0
- package/packages/daemon/dist/services/WatcherService.js.map +1 -0
- package/packages/daemon/dist/services/index.d.ts +2 -0
- package/packages/daemon/dist/services/index.d.ts.map +1 -0
- package/packages/daemon/dist/services/index.js +18 -0
- package/packages/daemon/dist/services/index.js.map +1 -0
- package/packages/daemon/dist/test-ignore.js +0 -0
- package/packages/daemon/package.json +28 -0
- package/packages/ui/app/actions.ts +73 -0
- package/packages/ui/app/api/ai-activity/route.ts +14 -0
- package/packages/ui/app/globals.css +98 -0
- package/packages/ui/app/layout.tsx +29 -0
- package/packages/ui/app/page.tsx +109 -0
- package/packages/ui/components/AutoRefresh.tsx +18 -0
- package/packages/ui/components/DocumentationViewer.tsx +276 -0
- package/packages/ui/components/FileList.tsx +69 -0
- package/packages/ui/components/HeaderWithThinking.tsx +102 -0
- package/packages/ui/components/JobQueue.tsx +194 -0
- package/packages/ui/components/JobQueueWrapper.tsx +31 -0
- package/packages/ui/components/MermaidInit.tsx +24 -0
- package/packages/ui/components/ProjectContentArea.tsx +186 -0
- package/packages/ui/components/ProjectList.tsx +136 -0
- package/packages/ui/components/ThinkingDrawer.tsx +377 -0
- package/packages/ui/components/ThinkingPanel.tsx +63 -0
- package/packages/ui/components/TriggerSettings.tsx +185 -0
- package/packages/ui/components/VersionSelector.tsx +132 -0
- package/packages/ui/lib/db.ts +521 -0
- package/packages/ui/next-env.d.ts +5 -0
- package/packages/ui/next.config.js +4 -0
- package/packages/ui/package.json +32 -0
- package/packages/ui/postcss.config.js +6 -0
- package/packages/ui/public/logo.png +0 -0
- package/packages/ui/tailwind.config.ts +32 -0
- package/packages/ui/tsconfig.json +40 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.queue = queue;
|
|
7
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const paths_1 = require("../utils/paths");
|
|
10
|
+
async function queue(action) {
|
|
11
|
+
let dbPath;
|
|
12
|
+
try {
|
|
13
|
+
dbPath = (0, paths_1.getDaemonDbPath)();
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error('ERROR: ' + error.message);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const db = new better_sqlite3_1.default(dbPath);
|
|
20
|
+
switch (action) {
|
|
21
|
+
case 'clear':
|
|
22
|
+
// Cancel current job
|
|
23
|
+
db.prepare(`
|
|
24
|
+
UPDATE jobs
|
|
25
|
+
SET status = 'failed', error = 'Cancelled by user', updated_at = unixepoch()
|
|
26
|
+
WHERE status = 'processing'
|
|
27
|
+
`).run();
|
|
28
|
+
// Clear pending jobs
|
|
29
|
+
const deleted = db.prepare(`DELETE FROM jobs WHERE status = 'pending'`).run();
|
|
30
|
+
console.log(`Queue cleared. Removed ${deleted.changes} pending jobs.`);
|
|
31
|
+
// Also reset all doc stages
|
|
32
|
+
db.prepare(`UPDATE doc_stages SET current_stage = 0`).run();
|
|
33
|
+
break;
|
|
34
|
+
case 'kill':
|
|
35
|
+
const killedJob = db.prepare(`
|
|
36
|
+
UPDATE jobs
|
|
37
|
+
SET status = 'failed', error = 'Killed by user', updated_at = unixepoch()
|
|
38
|
+
WHERE status = 'processing'
|
|
39
|
+
`).run();
|
|
40
|
+
if (killedJob.changes > 0) {
|
|
41
|
+
console.log('Current job killed.');
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.log('No job currently processing.');
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
case 'status':
|
|
48
|
+
const pending = db.prepare(`SELECT COUNT(*) as count FROM jobs WHERE status = 'pending'`).get();
|
|
49
|
+
const processing = db.prepare(`SELECT * FROM jobs WHERE status = 'processing'`).get();
|
|
50
|
+
console.log('Queue Status:');
|
|
51
|
+
console.log(` Pending: ${pending.count} jobs`);
|
|
52
|
+
if (processing) {
|
|
53
|
+
console.log(` Processing: ${processing.name} (ID: ${processing.id})`);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log(' Processing: None');
|
|
57
|
+
}
|
|
58
|
+
// Also show running AI activities
|
|
59
|
+
const runningAI = db.prepare(`SELECT COUNT(*) as count FROM ai_activity WHERE status = 'running'`).get();
|
|
60
|
+
if (runningAI.count > 0) {
|
|
61
|
+
console.log(chalk_1.default.yellow(` Running AI Activities: ${runningAI.count}`));
|
|
62
|
+
console.log(chalk_1.default.gray(` Use "chronicle queue kill-ai" to cancel them`));
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
case 'kill-ai':
|
|
66
|
+
const killedAI = db.prepare(`
|
|
67
|
+
UPDATE ai_activity
|
|
68
|
+
SET status = 'error',
|
|
69
|
+
response_preview = 'Cancelled by user',
|
|
70
|
+
thinking_summary = 'Activity was cancelled.'
|
|
71
|
+
WHERE status = 'running'
|
|
72
|
+
`).run();
|
|
73
|
+
if (killedAI.changes > 0) {
|
|
74
|
+
console.log(`Killed ${killedAI.changes} running AI activities.`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log('No running AI activities found.');
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
default:
|
|
81
|
+
console.log(`
|
|
82
|
+
Chronicle Queue Management
|
|
83
|
+
|
|
84
|
+
Usage: chronicle queue <action>
|
|
85
|
+
|
|
86
|
+
Actions:
|
|
87
|
+
clear Clear all pending jobs and kill current job
|
|
88
|
+
kill Kill the currently processing job
|
|
89
|
+
kill-ai Kill all running AI activities
|
|
90
|
+
status Show queue status
|
|
91
|
+
`);
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
db.close();
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/commands/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAMA,wBAAsB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,iBA2EhD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.remove = remove;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const paths_1 = require("../utils/paths");
|
|
11
|
+
async function remove(projectPath) {
|
|
12
|
+
// Resolve absolute path from arg or cwd
|
|
13
|
+
const targetDir = projectPath ? path_1.default.resolve(process.cwd(), projectPath) : process.cwd();
|
|
14
|
+
const normalizedPath = path_1.default.resolve(targetDir);
|
|
15
|
+
// 1. Connect to Daemon DB
|
|
16
|
+
let dbPath;
|
|
17
|
+
try {
|
|
18
|
+
dbPath = (0, paths_1.getDaemonDbPath)();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error(chalk_1.default.red(error.message));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const db = new better_sqlite3_1.default(dbPath);
|
|
25
|
+
try {
|
|
26
|
+
// 2. Check if project exists
|
|
27
|
+
const project = db.prepare(`
|
|
28
|
+
SELECT id, path FROM projects WHERE path = ?
|
|
29
|
+
`).get(normalizedPath);
|
|
30
|
+
if (!project) {
|
|
31
|
+
// Try to find by partial match (in case of path normalization issues)
|
|
32
|
+
const allProjects = db.prepare(`
|
|
33
|
+
SELECT id, path FROM projects
|
|
34
|
+
`).all();
|
|
35
|
+
const matchingProject = allProjects.find(p => {
|
|
36
|
+
const normalized = path_1.default.resolve(p.path);
|
|
37
|
+
return normalized === normalizedPath ||
|
|
38
|
+
normalizedPath.startsWith(normalized) ||
|
|
39
|
+
normalized.startsWith(normalizedPath);
|
|
40
|
+
});
|
|
41
|
+
if (matchingProject) {
|
|
42
|
+
console.log(chalk_1.default.yellow(`WARNING: Found project with slightly different path:`));
|
|
43
|
+
console.log(chalk_1.default.yellow(` Stored: ${matchingProject.path}`));
|
|
44
|
+
console.log(chalk_1.default.yellow(` Target: ${normalizedPath}`));
|
|
45
|
+
console.log(chalk_1.default.yellow(`\n Removing stored path instead...`));
|
|
46
|
+
// Use the stored path for removal
|
|
47
|
+
const stmt = db.prepare(`
|
|
48
|
+
INSERT INTO jobs (name, data, status)
|
|
49
|
+
VALUES (?, ?, 'pending')
|
|
50
|
+
`);
|
|
51
|
+
stmt.run('system:project_remove', JSON.stringify({ path: matchingProject.path, action: 'remove' }));
|
|
52
|
+
console.log(chalk_1.default.green(`Queued removal of "${matchingProject.path}" from monitoring.`));
|
|
53
|
+
db.close();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
console.error(chalk_1.default.red(`ERROR: Project not found in Chronicle: ${normalizedPath}`));
|
|
57
|
+
console.log(chalk_1.default.yellow(`\n Monitored projects:`));
|
|
58
|
+
allProjects.forEach(p => {
|
|
59
|
+
console.log(chalk_1.default.gray(` - ${p.path}`));
|
|
60
|
+
});
|
|
61
|
+
db.close();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// 3. Enqueue Job
|
|
65
|
+
const stmt = db.prepare(`
|
|
66
|
+
INSERT INTO jobs (name, data, status)
|
|
67
|
+
VALUES (?, ?, 'pending')
|
|
68
|
+
`);
|
|
69
|
+
stmt.run('system:project_remove', JSON.stringify({ path: normalizedPath, action: 'remove' }));
|
|
70
|
+
console.log(chalk_1.default.green(`Queued removal of "${normalizedPath}" from monitoring.`));
|
|
71
|
+
console.log(chalk_1.default.gray(` The daemon will process this removal shortly.`));
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.error(chalk_1.default.red(`Failed to remove project: ${e.message}`));
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
db.close();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"AAOA,wBAAsB,KAAK,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,iBAkF1E"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.reset = reset;
|
|
7
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
12
|
+
const paths_1 = require("../utils/paths");
|
|
13
|
+
async function reset(options) {
|
|
14
|
+
let dbPath;
|
|
15
|
+
try {
|
|
16
|
+
dbPath = (0, paths_1.getDaemonDbPath)();
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error(chalk_1.default.red('ERROR: ' + error.message));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Check if database exists
|
|
23
|
+
if (!fs_1.default.existsSync(dbPath)) {
|
|
24
|
+
console.log(chalk_1.default.yellow('Database does not exist. Nothing to reset.'));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Get database stats before reset
|
|
28
|
+
const db = new better_sqlite3_1.default(dbPath);
|
|
29
|
+
let projectCount = 0;
|
|
30
|
+
let jobCount = 0;
|
|
31
|
+
let activityCount = 0;
|
|
32
|
+
try {
|
|
33
|
+
projectCount = db.prepare(`SELECT COUNT(*) as count FROM projects`).get().count;
|
|
34
|
+
jobCount = db.prepare(`SELECT COUNT(*) as count FROM jobs`).get().count;
|
|
35
|
+
activityCount = db.prepare(`SELECT COUNT(*) as count FROM ai_activity`).get().count;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Database might be corrupted, that's okay
|
|
39
|
+
}
|
|
40
|
+
db.close();
|
|
41
|
+
// Show what will be deleted
|
|
42
|
+
console.log(chalk_1.default.bold('\nDatabase Reset\n'));
|
|
43
|
+
console.log(chalk_1.default.yellow('This will permanently delete all Chronicle data:'));
|
|
44
|
+
console.log(chalk_1.default.gray(` - ${projectCount} projects`));
|
|
45
|
+
console.log(chalk_1.default.gray(` - ${jobCount} jobs`));
|
|
46
|
+
console.log(chalk_1.default.gray(` - ${activityCount} AI activity records`));
|
|
47
|
+
console.log(chalk_1.default.gray(` - All documentation versions`));
|
|
48
|
+
console.log(chalk_1.default.gray(` - All file indexes`));
|
|
49
|
+
console.log();
|
|
50
|
+
// Confirmation
|
|
51
|
+
if (!options?.force) {
|
|
52
|
+
const response = await (0, prompts_1.default)({
|
|
53
|
+
type: 'confirm',
|
|
54
|
+
name: 'confirmed',
|
|
55
|
+
message: 'Are you sure you want to reset the database?',
|
|
56
|
+
initial: false
|
|
57
|
+
});
|
|
58
|
+
if (!response.confirmed) {
|
|
59
|
+
console.log(chalk_1.default.gray('Reset cancelled.'));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Optional backup
|
|
64
|
+
if (options?.backup !== false) {
|
|
65
|
+
const backupPath = dbPath + '.backup.' + Date.now();
|
|
66
|
+
try {
|
|
67
|
+
fs_1.default.copyFileSync(dbPath, backupPath);
|
|
68
|
+
console.log(chalk_1.default.green(`Backup created: ${path_1.default.basename(backupPath)}`));
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
console.log(chalk_1.default.yellow(`WARNING: Could not create backup: ${e.message}`));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Reset database by deleting and recreating
|
|
75
|
+
try {
|
|
76
|
+
console.log(chalk_1.default.blue('Resetting database...'));
|
|
77
|
+
// Close any existing connections by deleting the file
|
|
78
|
+
// The daemon will recreate it on next access
|
|
79
|
+
fs_1.default.unlinkSync(dbPath);
|
|
80
|
+
console.log(chalk_1.default.green('Database reset complete.'));
|
|
81
|
+
console.log(chalk_1.default.gray('The daemon will recreate the database schema automatically.'));
|
|
82
|
+
console.log(chalk_1.default.yellow('Note: You may need to restart the daemon for changes to take effect.'));
|
|
83
|
+
console.log();
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
console.error(chalk_1.default.red(`Failed to reset database: ${e.message}`));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../src/commands/restart.ts"],"names":[],"mappings":"AAOA,wBAAsB,OAAO,kBA0D5B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.restart = restart;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
const paths_1 = require("../utils/paths");
|
|
12
|
+
const start_1 = require("./start");
|
|
13
|
+
async function restart() {
|
|
14
|
+
const spinner = (0, ora_1.default)('Restarting Chronicle System...').start();
|
|
15
|
+
let daemonDir;
|
|
16
|
+
try {
|
|
17
|
+
daemonDir = (0, paths_1.getDaemonDir)();
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
spinner.fail(chalk_1.default.red(error.message));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const chronicleDir = path_1.default.join(daemonDir, '.chronicle');
|
|
24
|
+
const daemonPidFile = path_1.default.join(chronicleDir, 'daemon.pid');
|
|
25
|
+
const uiPidFile = path_1.default.join(chronicleDir, 'ui.pid');
|
|
26
|
+
const uiPortFile = path_1.default.join(chronicleDir, 'ui.port');
|
|
27
|
+
let stoppedAny = false;
|
|
28
|
+
// Stop UI
|
|
29
|
+
if (fs_1.default.existsSync(uiPidFile)) {
|
|
30
|
+
const pid = fs_1.default.readFileSync(uiPidFile, 'utf-8');
|
|
31
|
+
try {
|
|
32
|
+
process.kill(Number(pid));
|
|
33
|
+
stoppedAny = true;
|
|
34
|
+
fs_1.default.unlinkSync(uiPidFile);
|
|
35
|
+
if (fs_1.default.existsSync(uiPortFile))
|
|
36
|
+
fs_1.default.unlinkSync(uiPortFile);
|
|
37
|
+
spinner.text = 'UI stopped...';
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
spinner.text = chalk_1.default.yellow(`WARNING: Could not kill UI (PID ${pid}): ${e.message}`);
|
|
41
|
+
if (fs_1.default.existsSync(uiPidFile))
|
|
42
|
+
fs_1.default.unlinkSync(uiPidFile);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Stop Daemon
|
|
46
|
+
if (fs_1.default.existsSync(daemonPidFile)) {
|
|
47
|
+
const pid = fs_1.default.readFileSync(daemonPidFile, 'utf-8');
|
|
48
|
+
try {
|
|
49
|
+
process.kill(Number(pid));
|
|
50
|
+
stoppedAny = true;
|
|
51
|
+
fs_1.default.unlinkSync(daemonPidFile);
|
|
52
|
+
spinner.text = 'Daemon stopped...';
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
spinner.text = chalk_1.default.yellow(`WARNING: Could not kill Daemon (PID ${pid}): ${e.message}`);
|
|
56
|
+
if (fs_1.default.existsSync(daemonPidFile))
|
|
57
|
+
fs_1.default.unlinkSync(daemonPidFile);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (stoppedAny) {
|
|
61
|
+
spinner.text = 'Waiting for processes to fully stop...';
|
|
62
|
+
// Wait a bit for processes to fully terminate
|
|
63
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
64
|
+
spinner.succeed('Services stopped.');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
spinner.info('No services were running.');
|
|
68
|
+
}
|
|
69
|
+
spinner.stop();
|
|
70
|
+
await (0, start_1.start)({});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=restart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/commands/restart.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAQA,wBAAsB,KAAK,CAAC,OAAO,EAAE,GAAG,iBAmGvC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.start = start;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const ora_1 = __importDefault(require("ora"));
|
|
12
|
+
const detect_port_1 = __importDefault(require("detect-port"));
|
|
13
|
+
const paths_1 = require("../utils/paths");
|
|
14
|
+
async function start(options) {
|
|
15
|
+
const spinner = (0, ora_1.default)('Starting Chronicle System...').start();
|
|
16
|
+
let daemonDir;
|
|
17
|
+
let uiDir;
|
|
18
|
+
try {
|
|
19
|
+
daemonDir = (0, paths_1.getDaemonDir)();
|
|
20
|
+
uiDir = (0, paths_1.getUiDir)();
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
spinner.fail(chalk_1.default.red(error.message));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
// Ensure .chronicle dir exists
|
|
27
|
+
const chronicleDir = path_1.default.join(daemonDir, '.chronicle');
|
|
28
|
+
if (!fs_1.default.existsSync(chronicleDir)) {
|
|
29
|
+
fs_1.default.mkdirSync(chronicleDir, { recursive: true });
|
|
30
|
+
}
|
|
31
|
+
const geminiKeyFile = path_1.default.join(chronicleDir, '.gemini-key');
|
|
32
|
+
if (!fs_1.default.existsSync(geminiKeyFile)) {
|
|
33
|
+
fs_1.default.writeFileSync(geminiKeyFile, '# Chronicle Gemini API key\n# Paste your key on the next line (example: AIza...)\n\n', { mode: 0o600 });
|
|
34
|
+
spinner.info(chalk_1.default.yellow(`Created key file: ${geminiKeyFile}`));
|
|
35
|
+
}
|
|
36
|
+
const geminiKey = readGeminiKey(geminiKeyFile);
|
|
37
|
+
if (!geminiKey) {
|
|
38
|
+
spinner.fail(chalk_1.default.red(`Missing Gemini API key. Add your key to ${geminiKeyFile}`));
|
|
39
|
+
console.log(chalk_1.default.gray('Then run: chronicle start'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const daemonPidFile = path_1.default.join(chronicleDir, 'daemon.pid');
|
|
43
|
+
const uiPidFile = path_1.default.join(chronicleDir, 'ui.pid');
|
|
44
|
+
const uiPortFile = path_1.default.join(chronicleDir, 'ui.port');
|
|
45
|
+
// --- 1. Start Daemon ---
|
|
46
|
+
if (checkPid(daemonPidFile)) {
|
|
47
|
+
spinner.info(chalk_1.default.yellow('Daemon is already running.'));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
spinner.text = 'Launching Daemon...';
|
|
51
|
+
const out = fs_1.default.openSync(path_1.default.join(chronicleDir, 'out.log'), 'a');
|
|
52
|
+
const err = fs_1.default.openSync(path_1.default.join(chronicleDir, 'err.log'), 'a');
|
|
53
|
+
const daemon = (0, child_process_1.spawn)('npm', ['run', 'start'], {
|
|
54
|
+
cwd: daemonDir,
|
|
55
|
+
detached: true,
|
|
56
|
+
stdio: ['ignore', out, err],
|
|
57
|
+
env: { ...process.env, GOOGLE_API_KEY: geminiKey }
|
|
58
|
+
});
|
|
59
|
+
daemon.unref();
|
|
60
|
+
if (daemon.pid) {
|
|
61
|
+
fs_1.default.writeFileSync(daemonPidFile, String(daemon.pid));
|
|
62
|
+
spinner.succeed(chalk_1.default.green(`Daemon started (PID: ${daemon.pid})`));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
spinner.fail(chalk_1.default.red('Failed to start Daemon'));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// --- 2. Start UI ---
|
|
70
|
+
if (checkPid(uiPidFile)) {
|
|
71
|
+
spinner.info(chalk_1.default.yellow('UI is already running.'));
|
|
72
|
+
if (fs_1.default.existsSync(uiPortFile)) {
|
|
73
|
+
const port = fs_1.default.readFileSync(uiPortFile, 'utf-8');
|
|
74
|
+
console.log(chalk_1.default.cyan(`➜ UI: http://localhost:${port}`));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
spinner.start('Launching UI...');
|
|
79
|
+
try {
|
|
80
|
+
const port = await (0, detect_port_1.default)(3000);
|
|
81
|
+
const out = fs_1.default.openSync(path_1.default.join(chronicleDir, 'ui-out.log'), 'a');
|
|
82
|
+
const err = fs_1.default.openSync(path_1.default.join(chronicleDir, 'ui-err.log'), 'a');
|
|
83
|
+
const ui = (0, child_process_1.spawn)('npm', ['run', 'dev', '--', '-p', String(port)], {
|
|
84
|
+
cwd: uiDir,
|
|
85
|
+
detached: true,
|
|
86
|
+
stdio: ['ignore', out, err],
|
|
87
|
+
env: { ...process.env, PORT: String(port) }
|
|
88
|
+
});
|
|
89
|
+
ui.unref();
|
|
90
|
+
if (ui.pid) {
|
|
91
|
+
fs_1.default.writeFileSync(uiPidFile, String(ui.pid));
|
|
92
|
+
fs_1.default.writeFileSync(uiPortFile, String(port));
|
|
93
|
+
spinner.succeed(chalk_1.default.green(`UI started (PID: ${ui.pid})`));
|
|
94
|
+
console.log(chalk_1.default.bold.cyan(`\n➜ Dashboard running at: http://localhost:${port}\n`));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
spinner.fail(chalk_1.default.red('Failed to start UI'));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
spinner.fail(chalk_1.default.red(`Failed to start UI: ${error}`));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function checkPid(pidFile) {
|
|
106
|
+
if (fs_1.default.existsSync(pidFile)) {
|
|
107
|
+
const pid = fs_1.default.readFileSync(pidFile, 'utf-8');
|
|
108
|
+
try {
|
|
109
|
+
process.kill(Number(pid), 0);
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
fs_1.default.unlinkSync(pidFile); // Stale
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
function readGeminiKey(filePath) {
|
|
120
|
+
const content = fs_1.default.readFileSync(filePath, 'utf-8');
|
|
121
|
+
const lines = content
|
|
122
|
+
.split(/\r?\n/)
|
|
123
|
+
.map(line => line.trim())
|
|
124
|
+
.filter(line => line.length > 0 && !line.startsWith('#'));
|
|
125
|
+
return lines[0] || '';
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAuEA,wBAAsB,MAAM,kBAoI3B"}
|