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,181 @@
|
|
|
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.status = status;
|
|
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 paths_1 = require("../utils/paths");
|
|
12
|
+
function formatUptime(startTime) {
|
|
13
|
+
const now = Date.now();
|
|
14
|
+
const diff = now - startTime;
|
|
15
|
+
const seconds = Math.floor(diff / 1000);
|
|
16
|
+
const minutes = Math.floor(seconds / 60);
|
|
17
|
+
const hours = Math.floor(minutes / 60);
|
|
18
|
+
const days = Math.floor(hours / 24);
|
|
19
|
+
if (days > 0)
|
|
20
|
+
return `${days}d ${hours % 24}h`;
|
|
21
|
+
if (hours > 0)
|
|
22
|
+
return `${hours}h ${minutes % 60}m`;
|
|
23
|
+
if (minutes > 0)
|
|
24
|
+
return `${minutes}m ${seconds % 60}s`;
|
|
25
|
+
return `${seconds}s`;
|
|
26
|
+
}
|
|
27
|
+
function formatDuration(seconds) {
|
|
28
|
+
const days = Math.floor(seconds / 86400);
|
|
29
|
+
const hours = Math.floor((seconds % 86400) / 3600);
|
|
30
|
+
const daysPart = days > 0 ? `${days}d ` : '';
|
|
31
|
+
const hoursPart = hours > 0 ? `${hours}h` : '';
|
|
32
|
+
return daysPart + hoursPart || '< 1h';
|
|
33
|
+
}
|
|
34
|
+
function checkProcessRunning(pidFile) {
|
|
35
|
+
if (!fs_1.default.existsSync(pidFile)) {
|
|
36
|
+
return { running: false };
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const pid = parseInt(fs_1.default.readFileSync(pidFile, 'utf-8').trim(), 10);
|
|
40
|
+
// Check if process is actually running
|
|
41
|
+
try {
|
|
42
|
+
process.kill(pid, 0); // Signal 0 doesn't kill, just checks if process exists
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Process doesn't exist, remove stale PID file
|
|
46
|
+
fs_1.default.unlinkSync(pidFile);
|
|
47
|
+
return { running: false };
|
|
48
|
+
}
|
|
49
|
+
// Get start time from PID file modification time (proxy for when process started)
|
|
50
|
+
// This is more reliable than trying to read /proc on macOS
|
|
51
|
+
let startTime;
|
|
52
|
+
try {
|
|
53
|
+
const stats = fs_1.default.statSync(pidFile);
|
|
54
|
+
startTime = stats.mtimeMs; // Use modification time as proxy
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Can't get start time, that's okay
|
|
58
|
+
}
|
|
59
|
+
return { running: true, pid, startTime };
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return { running: false };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function status() {
|
|
66
|
+
console.log(chalk_1.default.bold('\nChronicle Status\n'));
|
|
67
|
+
// Check Daemon Status
|
|
68
|
+
let daemonDir;
|
|
69
|
+
try {
|
|
70
|
+
daemonDir = (0, paths_1.getDaemonDir)();
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.log(chalk_1.default.red('ERROR: Cannot find daemon directory'));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const chronicleDir = path_1.default.join(daemonDir, '.chronicle');
|
|
77
|
+
const daemonPidFile = path_1.default.join(chronicleDir, 'daemon.pid');
|
|
78
|
+
const uiPidFile = path_1.default.join(chronicleDir, 'ui.pid');
|
|
79
|
+
const daemonStatus = checkProcessRunning(daemonPidFile);
|
|
80
|
+
const uiStatus = checkProcessRunning(uiPidFile);
|
|
81
|
+
// Service Status
|
|
82
|
+
console.log(chalk_1.default.bold('Services:\n'));
|
|
83
|
+
console.log(daemonStatus.running
|
|
84
|
+
? chalk_1.default.green(` [RUNNING] Daemon (PID: ${daemonStatus.pid})`)
|
|
85
|
+
: chalk_1.default.red(' [STOPPED] Daemon'));
|
|
86
|
+
if (daemonStatus.running && daemonStatus.startTime) {
|
|
87
|
+
const uptime = formatUptime(daemonStatus.startTime);
|
|
88
|
+
console.log(chalk_1.default.gray(` Uptime: ${uptime}`));
|
|
89
|
+
}
|
|
90
|
+
console.log(uiStatus.running
|
|
91
|
+
? chalk_1.default.green(` [RUNNING] UI (PID: ${uiStatus.pid})`)
|
|
92
|
+
: chalk_1.default.red(' [STOPPED] UI'));
|
|
93
|
+
if (uiStatus.running && uiStatus.startTime) {
|
|
94
|
+
const uptime = formatUptime(uiStatus.startTime);
|
|
95
|
+
console.log(chalk_1.default.gray(` Uptime: ${uptime}`));
|
|
96
|
+
}
|
|
97
|
+
// Database Stats
|
|
98
|
+
let dbPath;
|
|
99
|
+
try {
|
|
100
|
+
dbPath = (0, paths_1.getDaemonDbPath)();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.log(chalk_1.default.yellow('\nWARNING: Database not found. Daemon may not be running.\n'));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const db = new better_sqlite3_1.default(dbPath, { readonly: true });
|
|
107
|
+
try {
|
|
108
|
+
// Get project stats
|
|
109
|
+
const projects = db.prepare(`
|
|
110
|
+
SELECT
|
|
111
|
+
p.id,
|
|
112
|
+
p.path,
|
|
113
|
+
p.name,
|
|
114
|
+
p.is_paused,
|
|
115
|
+
p.created_at,
|
|
116
|
+
COUNT(DISTINCT dv.id) as doc_versions,
|
|
117
|
+
MAX(COALESCE(dv.created_at, p.created_at)) as last_activity
|
|
118
|
+
FROM projects p
|
|
119
|
+
LEFT JOIN doc_versions dv ON dv.project_id = p.id
|
|
120
|
+
GROUP BY p.id
|
|
121
|
+
ORDER BY last_activity DESC, p.created_at DESC
|
|
122
|
+
LIMIT 5
|
|
123
|
+
`).all();
|
|
124
|
+
// Overall stats
|
|
125
|
+
const totalProjects = db.prepare(`SELECT COUNT(*) as count FROM projects`).get();
|
|
126
|
+
const activeProjects = db.prepare(`SELECT COUNT(*) as count FROM projects WHERE is_paused = 0`).get();
|
|
127
|
+
const totalJobs = db.prepare(`SELECT COUNT(*) as count FROM jobs`).get();
|
|
128
|
+
const pendingJobs = db.prepare(`SELECT COUNT(*) as count FROM jobs WHERE status = 'pending'`).get();
|
|
129
|
+
const processingJob = db.prepare(`SELECT * FROM jobs WHERE status = 'processing'`).get();
|
|
130
|
+
const totalAIActivity = db.prepare(`SELECT COUNT(*) as count FROM ai_activity`).get();
|
|
131
|
+
const recentAIActivity = db.prepare(`
|
|
132
|
+
SELECT COUNT(*) as count
|
|
133
|
+
FROM ai_activity
|
|
134
|
+
WHERE created_at > unixepoch() - 3600
|
|
135
|
+
`).get();
|
|
136
|
+
// Projects Section
|
|
137
|
+
console.log(chalk_1.default.bold(`\nProjects (${totalProjects.count} total, ${activeProjects.count} active):\n`));
|
|
138
|
+
if (projects.length === 0) {
|
|
139
|
+
console.log(chalk_1.default.gray(' No projects being monitored.'));
|
|
140
|
+
console.log(chalk_1.default.gray(' Run "chronicle add" to start monitoring a project.\n'));
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
for (const project of projects) {
|
|
144
|
+
const status = project.is_paused ? chalk_1.default.yellow('[PAUSED]') : chalk_1.default.green('[ACTIVE]');
|
|
145
|
+
const monitoredFor = formatDuration(Math.floor(Date.now() / 1000) - project.created_at);
|
|
146
|
+
const lastActivity = project.lastActivity
|
|
147
|
+
? formatDuration(Math.floor(Date.now() / 1000) - project.lastActivity)
|
|
148
|
+
: 'Never';
|
|
149
|
+
console.log(` ${status} ${chalk_1.default.bold(project.name)}`);
|
|
150
|
+
console.log(chalk_1.default.gray(` Path: ${project.path}`));
|
|
151
|
+
console.log(chalk_1.default.gray(` Monitored: ${monitoredFor} | Versions: ${project.docVersions} | Last activity: ${lastActivity} ago`));
|
|
152
|
+
console.log();
|
|
153
|
+
}
|
|
154
|
+
if (totalProjects.count > 5) {
|
|
155
|
+
console.log(chalk_1.default.gray(` ... and ${totalProjects.count - 5} more projects\n`));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Analytics Section
|
|
159
|
+
console.log(chalk_1.default.bold('Analytics:\n'));
|
|
160
|
+
console.log(chalk_1.default.gray(` Total Jobs: ${totalJobs.count}`));
|
|
161
|
+
if (pendingJobs.count > 0) {
|
|
162
|
+
console.log(chalk_1.default.yellow(` Pending Jobs: ${pendingJobs.count}`));
|
|
163
|
+
}
|
|
164
|
+
if (processingJob) {
|
|
165
|
+
console.log(chalk_1.default.blue(` Processing: ${processingJob.name} (ID: ${processingJob.id})`));
|
|
166
|
+
}
|
|
167
|
+
console.log(chalk_1.default.gray(` AI Activity: ${totalAIActivity.count} total, ${recentAIActivity.count} in last hour`));
|
|
168
|
+
// Database info
|
|
169
|
+
const dbStats = fs_1.default.statSync(dbPath);
|
|
170
|
+
const dbSizeMB = (dbStats.size / (1024 * 1024)).toFixed(2);
|
|
171
|
+
console.log(chalk_1.default.gray(` Database Size: ${dbSizeMB} MB`));
|
|
172
|
+
console.log();
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
console.error(chalk_1.default.red(`Failed to get status: ${e.message}`));
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
db.close();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAMA,wBAAsB,IAAI,kBAoDzB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.stop = stop;
|
|
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
|
+
async function stop() {
|
|
13
|
+
const spinner = (0, ora_1.default)('Stopping services...').start();
|
|
14
|
+
let daemonDir;
|
|
15
|
+
try {
|
|
16
|
+
daemonDir = (0, paths_1.getDaemonDir)();
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
spinner.fail(chalk_1.default.red(error.message));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const chronicleDir = path_1.default.join(daemonDir, '.chronicle');
|
|
23
|
+
const daemonPidFile = path_1.default.join(chronicleDir, 'daemon.pid');
|
|
24
|
+
const uiPidFile = path_1.default.join(chronicleDir, 'ui.pid');
|
|
25
|
+
const uiPortFile = path_1.default.join(chronicleDir, 'ui.port');
|
|
26
|
+
let stoppedAny = false;
|
|
27
|
+
// Stop UI
|
|
28
|
+
if (fs_1.default.existsSync(uiPidFile)) {
|
|
29
|
+
const pid = fs_1.default.readFileSync(uiPidFile, 'utf-8');
|
|
30
|
+
try {
|
|
31
|
+
process.kill(Number(pid));
|
|
32
|
+
stoppedAny = true;
|
|
33
|
+
fs_1.default.unlinkSync(uiPidFile);
|
|
34
|
+
if (fs_1.default.existsSync(uiPortFile))
|
|
35
|
+
fs_1.default.unlinkSync(uiPortFile);
|
|
36
|
+
console.log(chalk_1.default.green(`UI stopped (PID: ${pid})`));
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
console.log(chalk_1.default.yellow(`WARNING: Could not kill UI (PID ${pid}): ${e.message}`));
|
|
40
|
+
fs_1.default.unlinkSync(uiPidFile);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Stop Daemon
|
|
44
|
+
if (fs_1.default.existsSync(daemonPidFile)) {
|
|
45
|
+
const pid = fs_1.default.readFileSync(daemonPidFile, 'utf-8');
|
|
46
|
+
try {
|
|
47
|
+
process.kill(Number(pid));
|
|
48
|
+
stoppedAny = true;
|
|
49
|
+
fs_1.default.unlinkSync(daemonPidFile);
|
|
50
|
+
console.log(chalk_1.default.green(`Daemon stopped (PID: ${pid})`));
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
console.log(chalk_1.default.yellow(`WARNING: Could not kill Daemon (PID ${pid}): ${e.message}`));
|
|
54
|
+
fs_1.default.unlinkSync(daemonPidFile);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (stoppedAny) {
|
|
58
|
+
spinner.succeed('All services stopped.');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
spinner.info('No active services found.');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":";;;;;AAMA,oBAoDC;AA1DD,gDAAwB;AACxB,4CAAoB;AACpB,kDAA0B;AAC1B,8CAAsB;AACtB,0CAA8C;AAEvC,KAAK,UAAU,IAAI;IACtB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACD,SAAS,GAAG,IAAA,oBAAY,GAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,OAAO;IACX,CAAC;IACD,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAEtD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,UAAU;IACV,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC;YAClB,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,GAAG,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9F,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,cAAc;IACd,IAAI,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC;YAClB,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uCAAuC,GAAG,MAAO,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClG,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const commander_1 = require("commander");
|
|
4
|
+
const start_1 = require("./commands/start");
|
|
5
|
+
const stop_1 = require("./commands/stop");
|
|
6
|
+
const restart_1 = require("./commands/restart");
|
|
7
|
+
const add_1 = require("./commands/add");
|
|
8
|
+
const remove_1 = require("./commands/remove");
|
|
9
|
+
const init_1 = require("./commands/init");
|
|
10
|
+
const queue_1 = require("./commands/queue");
|
|
11
|
+
const list_1 = require("./commands/list");
|
|
12
|
+
const status_1 = require("./commands/status");
|
|
13
|
+
const reset_1 = require("./commands/reset");
|
|
14
|
+
const pause_1 = require("./commands/pause");
|
|
15
|
+
const diff_1 = require("./commands/diff");
|
|
16
|
+
const log_1 = require("./commands/log");
|
|
17
|
+
const program = new commander_1.Command();
|
|
18
|
+
program
|
|
19
|
+
.name('chronicle')
|
|
20
|
+
.description('CLI for Chronicle Living Documentation')
|
|
21
|
+
.version('0.0.1');
|
|
22
|
+
program
|
|
23
|
+
.command('start')
|
|
24
|
+
.description('Start the background daemon and UI')
|
|
25
|
+
.action(start_1.start);
|
|
26
|
+
program
|
|
27
|
+
.command('stop')
|
|
28
|
+
.description('Stop all Chronicle services')
|
|
29
|
+
.action(stop_1.stop);
|
|
30
|
+
program
|
|
31
|
+
.command('restart')
|
|
32
|
+
.description('Restart all Chronicle services (stop then start)')
|
|
33
|
+
.action(restart_1.restart);
|
|
34
|
+
program
|
|
35
|
+
.command('add [path]')
|
|
36
|
+
.description('Monitor the specified directory (defaults to current)')
|
|
37
|
+
.action(add_1.add);
|
|
38
|
+
program
|
|
39
|
+
.command('remove [path]')
|
|
40
|
+
.description('Stop monitoring the specified directory (defaults to current)')
|
|
41
|
+
.action(remove_1.remove);
|
|
42
|
+
program
|
|
43
|
+
.command('list')
|
|
44
|
+
.description('List all monitored projects and queue status')
|
|
45
|
+
.action(list_1.list);
|
|
46
|
+
program
|
|
47
|
+
.command('status')
|
|
48
|
+
.description('Show comprehensive system status (daemon, UI, projects, analytics)')
|
|
49
|
+
.action(status_1.status);
|
|
50
|
+
program
|
|
51
|
+
.command('reset')
|
|
52
|
+
.description('Reset the database (deletes all projects, jobs, and activity)')
|
|
53
|
+
.option('--force', 'Skip confirmation prompt')
|
|
54
|
+
.option('--no-backup', 'Skip creating a backup')
|
|
55
|
+
.action((options) => (0, reset_1.reset)(options));
|
|
56
|
+
program
|
|
57
|
+
.command('init [path]')
|
|
58
|
+
.description('Trigger documentation generation for a project')
|
|
59
|
+
.action(init_1.init);
|
|
60
|
+
program
|
|
61
|
+
.command('queue [action]')
|
|
62
|
+
.description('Manage job queue (clear, kill, status)')
|
|
63
|
+
.action(queue_1.queue);
|
|
64
|
+
program
|
|
65
|
+
.command('pause [path]')
|
|
66
|
+
.description('Pause documentation updates for a project')
|
|
67
|
+
.action(pause_1.pause);
|
|
68
|
+
program
|
|
69
|
+
.command('resume [path]')
|
|
70
|
+
.description('Resume documentation updates for a project')
|
|
71
|
+
.action(pause_1.resume);
|
|
72
|
+
program
|
|
73
|
+
.command('diff [path]')
|
|
74
|
+
.description('Show doc versions and differences')
|
|
75
|
+
.action(diff_1.diff);
|
|
76
|
+
program
|
|
77
|
+
.command('versions [path]')
|
|
78
|
+
.description('List all doc versions for a project')
|
|
79
|
+
.action(diff_1.versions);
|
|
80
|
+
program
|
|
81
|
+
.command('log')
|
|
82
|
+
.description('Stream real-time logs from daemon, CLI, and AI activity')
|
|
83
|
+
.action(log_1.log);
|
|
84
|
+
program.parse();
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,4CAAyC;AACzC,0CAAuC;AACvC,gDAA6C;AAC7C,wCAAqC;AACrC,8CAA2C;AAC3C,0CAAuC;AACvC,4CAAyC;AACzC,0CAAuC;AACvC,8CAA2C;AAC3C,4CAAyC;AACzC,4CAAiD;AACjD,0CAAiD;AACjD,wCAAqC;AAErC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,aAAK,CAAC,CAAC;AAEnB,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,WAAI,CAAC,CAAC;AAElB,OAAO;KACF,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,iBAAO,CAAC,CAAC;AAErB,OAAO;KACF,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,SAAG,CAAC,CAAC;AAEjB,OAAO;KACF,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,eAAM,CAAC,CAAC;AAEpB,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,WAAI,CAAC,CAAC;AAElB,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oEAAoE,CAAC;KACjF,MAAM,CAAC,eAAM,CAAC,CAAC;AAEpB,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,aAAK,EAAC,OAAO,CAAC,CAAC,CAAC;AAEzC,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,WAAI,CAAC,CAAC;AAElB,OAAO;KACF,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,aAAK,CAAC,CAAC;AAEnB,OAAO;KACF,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,aAAK,CAAC,CAAC;AAEnB,OAAO;KACF,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,cAAM,CAAC,CAAC;AAEpB,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,WAAI,CAAC,CAAC;AAElB,OAAO;KACF,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,eAAQ,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,SAAG,CAAC,CAAC;AAEjB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds the Chronicle daemon database path.
|
|
3
|
+
* Works both in development (monorepo) and when CLI is linked globally.
|
|
4
|
+
*/
|
|
5
|
+
export declare function findDaemonDbPath(): string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Gets the daemon database path or throws an error with helpful message.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getDaemonDbPath(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Finds the daemon directory (for operations like start/stop).
|
|
12
|
+
*/
|
|
13
|
+
export declare function findDaemonDir(): string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Gets the daemon directory or throws an error.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getDaemonDir(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Finds the UI directory.
|
|
20
|
+
*/
|
|
21
|
+
export declare function findUiDir(): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Gets the UI directory or throws an error.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getUiDir(): string;
|
|
26
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAuDhD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAUxC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAwC7C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CASrC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAwCzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CASjC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
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.findDaemonDbPath = findDaemonDbPath;
|
|
7
|
+
exports.getDaemonDbPath = getDaemonDbPath;
|
|
8
|
+
exports.findDaemonDir = findDaemonDir;
|
|
9
|
+
exports.getDaemonDir = getDaemonDir;
|
|
10
|
+
exports.findUiDir = findUiDir;
|
|
11
|
+
exports.getUiDir = getUiDir;
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
const os_1 = __importDefault(require("os"));
|
|
15
|
+
/**
|
|
16
|
+
* Finds the Chronicle daemon database path.
|
|
17
|
+
* Works both in development (monorepo) and when CLI is linked globally.
|
|
18
|
+
*/
|
|
19
|
+
function findDaemonDbPath() {
|
|
20
|
+
// 1. Check environment variable first
|
|
21
|
+
if (process.env.CHRONICLE_DAEMON_PATH) {
|
|
22
|
+
const envPath = path_1.default.resolve(process.env.CHRONICLE_DAEMON_PATH);
|
|
23
|
+
if (fs_1.default.existsSync(envPath)) {
|
|
24
|
+
return envPath;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// 2. Check relative path from __dirname (works in development/monorepo)
|
|
28
|
+
// When running from source: packages/cli/dist/commands/ -> packages/daemon/.chronicle/db.sqlite
|
|
29
|
+
const relativePath = path_1.default.resolve(__dirname, '../../../daemon/.chronicle/db.sqlite');
|
|
30
|
+
if (fs_1.default.existsSync(relativePath)) {
|
|
31
|
+
return relativePath;
|
|
32
|
+
}
|
|
33
|
+
// 3. Check if we're in a monorepo and can find it by traversing up
|
|
34
|
+
let currentDir = __dirname;
|
|
35
|
+
for (let i = 0; i < 10; i++) {
|
|
36
|
+
const possiblePath = path_1.default.join(currentDir, '..', 'daemon', '.chronicle', 'db.sqlite');
|
|
37
|
+
if (fs_1.default.existsSync(possiblePath)) {
|
|
38
|
+
return path_1.default.resolve(possiblePath);
|
|
39
|
+
}
|
|
40
|
+
const parent = path_1.default.dirname(currentDir);
|
|
41
|
+
if (parent === currentDir)
|
|
42
|
+
break; // Reached root
|
|
43
|
+
currentDir = parent;
|
|
44
|
+
}
|
|
45
|
+
// 4. Check home directory (common for global installs)
|
|
46
|
+
const homePath = path_1.default.join(os_1.default.homedir(), '.chronicle', 'db.sqlite');
|
|
47
|
+
if (fs_1.default.existsSync(homePath)) {
|
|
48
|
+
return homePath;
|
|
49
|
+
}
|
|
50
|
+
// 5. Check current working directory
|
|
51
|
+
const cwdPath = path_1.default.join(process.cwd(), '.chronicle', 'db.sqlite');
|
|
52
|
+
if (fs_1.default.existsSync(cwdPath)) {
|
|
53
|
+
return cwdPath;
|
|
54
|
+
}
|
|
55
|
+
// 6. Check if daemon is running and we can find it via process
|
|
56
|
+
// (This is a fallback - check for .chronicle directory in common locations)
|
|
57
|
+
const commonLocations = [
|
|
58
|
+
path_1.default.join(os_1.default.homedir(), '.chronicle', 'db.sqlite'),
|
|
59
|
+
path_1.default.join(process.cwd(), 'packages', 'daemon', '.chronicle', 'db.sqlite'),
|
|
60
|
+
path_1.default.join(process.cwd(), 'daemon', '.chronicle', 'db.sqlite'),
|
|
61
|
+
];
|
|
62
|
+
for (const loc of commonLocations) {
|
|
63
|
+
if (fs_1.default.existsSync(loc)) {
|
|
64
|
+
return loc;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Gets the daemon database path or throws an error with helpful message.
|
|
71
|
+
*/
|
|
72
|
+
function getDaemonDbPath() {
|
|
73
|
+
const dbPath = findDaemonDbPath();
|
|
74
|
+
if (!dbPath) {
|
|
75
|
+
throw new Error('Daemon database not found. Is the daemon running?\n' +
|
|
76
|
+
' Make sure you run "chronicle start" first.\n' +
|
|
77
|
+
' You can also set CHRONICLE_DAEMON_PATH environment variable to point to the database.');
|
|
78
|
+
}
|
|
79
|
+
return dbPath;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Finds the daemon directory (for operations like start/stop).
|
|
83
|
+
*/
|
|
84
|
+
function findDaemonDir() {
|
|
85
|
+
// 1. Check environment variable
|
|
86
|
+
if (process.env.CHRONICLE_DAEMON_DIR) {
|
|
87
|
+
const envPath = path_1.default.resolve(process.env.CHRONICLE_DAEMON_DIR);
|
|
88
|
+
if (fs_1.default.existsSync(envPath)) {
|
|
89
|
+
return envPath;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// 2. Check relative path from __dirname
|
|
93
|
+
const relativePath = path_1.default.resolve(__dirname, '../../../daemon');
|
|
94
|
+
if (fs_1.default.existsSync(relativePath)) {
|
|
95
|
+
return relativePath;
|
|
96
|
+
}
|
|
97
|
+
// 3. Traverse up to find daemon directory
|
|
98
|
+
let currentDir = __dirname;
|
|
99
|
+
for (let i = 0; i < 10; i++) {
|
|
100
|
+
const possiblePath = path_1.default.join(currentDir, '..', 'daemon');
|
|
101
|
+
if (fs_1.default.existsSync(possiblePath)) {
|
|
102
|
+
return path_1.default.resolve(possiblePath);
|
|
103
|
+
}
|
|
104
|
+
const parent = path_1.default.dirname(currentDir);
|
|
105
|
+
if (parent === currentDir)
|
|
106
|
+
break;
|
|
107
|
+
currentDir = parent;
|
|
108
|
+
}
|
|
109
|
+
// 4. Check common locations
|
|
110
|
+
const commonLocations = [
|
|
111
|
+
path_1.default.join(process.cwd(), 'packages', 'daemon'),
|
|
112
|
+
path_1.default.join(process.cwd(), 'daemon'),
|
|
113
|
+
];
|
|
114
|
+
for (const loc of commonLocations) {
|
|
115
|
+
if (fs_1.default.existsSync(loc)) {
|
|
116
|
+
return loc;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Gets the daemon directory or throws an error.
|
|
123
|
+
*/
|
|
124
|
+
function getDaemonDir() {
|
|
125
|
+
const daemonDir = findDaemonDir();
|
|
126
|
+
if (!daemonDir) {
|
|
127
|
+
throw new Error('Daemon directory not found.\n' +
|
|
128
|
+
' Make sure you are running from the Chronicle monorepo or set CHRONICLE_DAEMON_DIR environment variable.');
|
|
129
|
+
}
|
|
130
|
+
return daemonDir;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Finds the UI directory.
|
|
134
|
+
*/
|
|
135
|
+
function findUiDir() {
|
|
136
|
+
// 1. Check environment variable
|
|
137
|
+
if (process.env.CHRONICLE_UI_DIR) {
|
|
138
|
+
const envPath = path_1.default.resolve(process.env.CHRONICLE_UI_DIR);
|
|
139
|
+
if (fs_1.default.existsSync(envPath)) {
|
|
140
|
+
return envPath;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// 2. Check relative path from __dirname
|
|
144
|
+
const relativePath = path_1.default.resolve(__dirname, '../../../ui');
|
|
145
|
+
if (fs_1.default.existsSync(relativePath)) {
|
|
146
|
+
return relativePath;
|
|
147
|
+
}
|
|
148
|
+
// 3. Traverse up to find ui directory
|
|
149
|
+
let currentDir = __dirname;
|
|
150
|
+
for (let i = 0; i < 10; i++) {
|
|
151
|
+
const possiblePath = path_1.default.join(currentDir, '..', 'ui');
|
|
152
|
+
if (fs_1.default.existsSync(possiblePath)) {
|
|
153
|
+
return path_1.default.resolve(possiblePath);
|
|
154
|
+
}
|
|
155
|
+
const parent = path_1.default.dirname(currentDir);
|
|
156
|
+
if (parent === currentDir)
|
|
157
|
+
break;
|
|
158
|
+
currentDir = parent;
|
|
159
|
+
}
|
|
160
|
+
// 4. Check common locations
|
|
161
|
+
const commonLocations = [
|
|
162
|
+
path_1.default.join(process.cwd(), 'packages', 'ui'),
|
|
163
|
+
path_1.default.join(process.cwd(), 'ui'),
|
|
164
|
+
];
|
|
165
|
+
for (const loc of commonLocations) {
|
|
166
|
+
if (fs_1.default.existsSync(loc)) {
|
|
167
|
+
return loc;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Gets the UI directory or throws an error.
|
|
174
|
+
*/
|
|
175
|
+
function getUiDir() {
|
|
176
|
+
const uiDir = findUiDir();
|
|
177
|
+
if (!uiDir) {
|
|
178
|
+
throw new Error('UI directory not found.\n' +
|
|
179
|
+
' Make sure you are running from the Chronicle monorepo or set CHRONICLE_UI_DIR environment variable.');
|
|
180
|
+
}
|
|
181
|
+
return uiDir;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@chronicle/cli",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"bin": {
|
|
5
|
+
"chronicle": "./bin/chronicle.js"
|
|
6
|
+
},
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc -b",
|
|
9
|
+
"dev": "tsc -b -w",
|
|
10
|
+
"start": "node bin/chronicle.js"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@types/prompts": "^2.4.9",
|
|
14
|
+
"better-sqlite3": "^11.10.0",
|
|
15
|
+
"chalk": "^5.3.0",
|
|
16
|
+
"commander": "^11.1.0",
|
|
17
|
+
"detect-port": "^2.1.0",
|
|
18
|
+
"ora": "^7.0.1",
|
|
19
|
+
"prompts": "^2.4.2",
|
|
20
|
+
"simple-git": "^3.30.0"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^20.10.0"
|
|
24
|
+
}
|
|
25
|
+
}
|