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.
Files changed (155) hide show
  1. package/README.md +132 -0
  2. package/package.json +86 -0
  3. package/packages/README.md +139 -0
  4. package/packages/cli/README.md +92 -0
  5. package/packages/cli/bin/chronicle.js +2 -0
  6. package/packages/cli/dist/commands/add.d.ts +2 -0
  7. package/packages/cli/dist/commands/add.d.ts.map +1 -0
  8. package/packages/cli/dist/commands/add.js +82 -0
  9. package/packages/cli/dist/commands/add.js.map +1 -0
  10. package/packages/cli/dist/commands/diff.d.ts +11 -0
  11. package/packages/cli/dist/commands/diff.d.ts.map +1 -0
  12. package/packages/cli/dist/commands/diff.js +164 -0
  13. package/packages/cli/dist/commands/diff.js.map +1 -0
  14. package/packages/cli/dist/commands/init.d.ts +2 -0
  15. package/packages/cli/dist/commands/init.d.ts.map +1 -0
  16. package/packages/cli/dist/commands/init.js +54 -0
  17. package/packages/cli/dist/commands/init.js.map +1 -0
  18. package/packages/cli/dist/commands/list.d.ts +2 -0
  19. package/packages/cli/dist/commands/list.d.ts.map +1 -0
  20. package/packages/cli/dist/commands/list.js +62 -0
  21. package/packages/cli/dist/commands/list.js.map +1 -0
  22. package/packages/cli/dist/commands/log.d.ts +4 -0
  23. package/packages/cli/dist/commands/log.d.ts.map +1 -0
  24. package/packages/cli/dist/commands/log.js +223 -0
  25. package/packages/cli/dist/commands/log.js.map +1 -0
  26. package/packages/cli/dist/commands/pause.d.ts +3 -0
  27. package/packages/cli/dist/commands/pause.d.ts.map +1 -0
  28. package/packages/cli/dist/commands/pause.js +49 -0
  29. package/packages/cli/dist/commands/pause.js.map +1 -0
  30. package/packages/cli/dist/commands/queue.d.ts +2 -0
  31. package/packages/cli/dist/commands/queue.d.ts.map +1 -0
  32. package/packages/cli/dist/commands/queue.js +96 -0
  33. package/packages/cli/dist/commands/queue.js.map +1 -0
  34. package/packages/cli/dist/commands/remove.d.ts +2 -0
  35. package/packages/cli/dist/commands/remove.d.ts.map +1 -0
  36. package/packages/cli/dist/commands/remove.js +80 -0
  37. package/packages/cli/dist/commands/remove.js.map +1 -0
  38. package/packages/cli/dist/commands/reset.d.ts +5 -0
  39. package/packages/cli/dist/commands/reset.d.ts.map +1 -0
  40. package/packages/cli/dist/commands/reset.js +90 -0
  41. package/packages/cli/dist/commands/reset.js.map +1 -0
  42. package/packages/cli/dist/commands/restart.d.ts +2 -0
  43. package/packages/cli/dist/commands/restart.d.ts.map +1 -0
  44. package/packages/cli/dist/commands/restart.js +72 -0
  45. package/packages/cli/dist/commands/restart.js.map +1 -0
  46. package/packages/cli/dist/commands/start.d.ts +2 -0
  47. package/packages/cli/dist/commands/start.d.ts.map +1 -0
  48. package/packages/cli/dist/commands/start.js +127 -0
  49. package/packages/cli/dist/commands/start.js.map +1 -0
  50. package/packages/cli/dist/commands/status.d.ts +2 -0
  51. package/packages/cli/dist/commands/status.d.ts.map +1 -0
  52. package/packages/cli/dist/commands/status.js +181 -0
  53. package/packages/cli/dist/commands/status.js.map +1 -0
  54. package/packages/cli/dist/commands/stop.d.ts +2 -0
  55. package/packages/cli/dist/commands/stop.d.ts.map +1 -0
  56. package/packages/cli/dist/commands/stop.js +64 -0
  57. package/packages/cli/dist/commands/stop.js.map +1 -0
  58. package/packages/cli/dist/index.d.ts +2 -0
  59. package/packages/cli/dist/index.d.ts.map +1 -0
  60. package/packages/cli/dist/index.js +85 -0
  61. package/packages/cli/dist/index.js.map +1 -0
  62. package/packages/cli/dist/utils/paths.d.ts +26 -0
  63. package/packages/cli/dist/utils/paths.d.ts.map +1 -0
  64. package/packages/cli/dist/utils/paths.js +183 -0
  65. package/packages/cli/dist/utils/paths.js.map +1 -0
  66. package/packages/cli/package.json +25 -0
  67. package/packages/daemon/README.md +83 -0
  68. package/packages/daemon/dist/ai_test.d.ts +2 -0
  69. package/packages/daemon/dist/ai_test.d.ts.map +1 -0
  70. package/packages/daemon/dist/ai_test.js +4 -0
  71. package/packages/daemon/dist/ai_test.js.map +1 -0
  72. package/packages/daemon/dist/index.d.ts +2 -0
  73. package/packages/daemon/dist/index.d.ts.map +1 -0
  74. package/packages/daemon/dist/index.js +147 -0
  75. package/packages/daemon/dist/index.js.map +1 -0
  76. package/packages/daemon/dist/jobs/AIProcessor.d.ts +6 -0
  77. package/packages/daemon/dist/jobs/AIProcessor.d.ts.map +1 -0
  78. package/packages/daemon/dist/jobs/AIProcessor.js +58 -0
  79. package/packages/daemon/dist/jobs/AIProcessor.js.map +1 -0
  80. package/packages/daemon/dist/jobs/DocProcessor.d.ts +8 -0
  81. package/packages/daemon/dist/jobs/DocProcessor.d.ts.map +1 -0
  82. package/packages/daemon/dist/jobs/DocProcessor.js +336 -0
  83. package/packages/daemon/dist/jobs/DocProcessor.js.map +1 -0
  84. package/packages/daemon/dist/jobs/FileProcessor.d.ts +7 -0
  85. package/packages/daemon/dist/jobs/FileProcessor.d.ts.map +1 -0
  86. package/packages/daemon/dist/jobs/FileProcessor.js +29 -0
  87. package/packages/daemon/dist/jobs/FileProcessor.js.map +1 -0
  88. package/packages/daemon/dist/jobs/SystemProcessor.d.ts +13 -0
  89. package/packages/daemon/dist/jobs/SystemProcessor.d.ts.map +1 -0
  90. package/packages/daemon/dist/jobs/SystemProcessor.js +38 -0
  91. package/packages/daemon/dist/jobs/SystemProcessor.js.map +1 -0
  92. package/packages/daemon/dist/jobs/UpdateProcessor.d.ts +21 -0
  93. package/packages/daemon/dist/jobs/UpdateProcessor.d.ts.map +1 -0
  94. package/packages/daemon/dist/jobs/UpdateProcessor.js +222 -0
  95. package/packages/daemon/dist/jobs/UpdateProcessor.js.map +1 -0
  96. package/packages/daemon/dist/services/AIService.d.ts +90 -0
  97. package/packages/daemon/dist/services/AIService.d.ts.map +1 -0
  98. package/packages/daemon/dist/services/AIService.js +451 -0
  99. package/packages/daemon/dist/services/AIService.js.map +1 -0
  100. package/packages/daemon/dist/services/ConfigService.d.ts +30 -0
  101. package/packages/daemon/dist/services/ConfigService.d.ts.map +1 -0
  102. package/packages/daemon/dist/services/ConfigService.js +69 -0
  103. package/packages/daemon/dist/services/ConfigService.js.map +1 -0
  104. package/packages/daemon/dist/services/DatabaseService.d.ts +204 -0
  105. package/packages/daemon/dist/services/DatabaseService.d.ts.map +1 -0
  106. package/packages/daemon/dist/services/DatabaseService.js +692 -0
  107. package/packages/daemon/dist/services/DatabaseService.js.map +1 -0
  108. package/packages/daemon/dist/services/GitService.d.ts +12 -0
  109. package/packages/daemon/dist/services/GitService.d.ts.map +1 -0
  110. package/packages/daemon/dist/services/GitService.js +68 -0
  111. package/packages/daemon/dist/services/GitService.js.map +1 -0
  112. package/packages/daemon/dist/services/QueueService.d.ts +16 -0
  113. package/packages/daemon/dist/services/QueueService.d.ts.map +1 -0
  114. package/packages/daemon/dist/services/QueueService.js +87 -0
  115. package/packages/daemon/dist/services/QueueService.js.map +1 -0
  116. package/packages/daemon/dist/services/TriggerService.d.ts +37 -0
  117. package/packages/daemon/dist/services/TriggerService.d.ts.map +1 -0
  118. package/packages/daemon/dist/services/TriggerService.js +150 -0
  119. package/packages/daemon/dist/services/TriggerService.js.map +1 -0
  120. package/packages/daemon/dist/services/WatcherService.d.ts +12 -0
  121. package/packages/daemon/dist/services/WatcherService.d.ts.map +1 -0
  122. package/packages/daemon/dist/services/WatcherService.js +77 -0
  123. package/packages/daemon/dist/services/WatcherService.js.map +1 -0
  124. package/packages/daemon/dist/services/index.d.ts +2 -0
  125. package/packages/daemon/dist/services/index.d.ts.map +1 -0
  126. package/packages/daemon/dist/services/index.js +18 -0
  127. package/packages/daemon/dist/services/index.js.map +1 -0
  128. package/packages/daemon/dist/test-ignore.js +0 -0
  129. package/packages/daemon/package.json +28 -0
  130. package/packages/ui/app/actions.ts +73 -0
  131. package/packages/ui/app/api/ai-activity/route.ts +14 -0
  132. package/packages/ui/app/globals.css +98 -0
  133. package/packages/ui/app/layout.tsx +29 -0
  134. package/packages/ui/app/page.tsx +109 -0
  135. package/packages/ui/components/AutoRefresh.tsx +18 -0
  136. package/packages/ui/components/DocumentationViewer.tsx +276 -0
  137. package/packages/ui/components/FileList.tsx +69 -0
  138. package/packages/ui/components/HeaderWithThinking.tsx +102 -0
  139. package/packages/ui/components/JobQueue.tsx +194 -0
  140. package/packages/ui/components/JobQueueWrapper.tsx +31 -0
  141. package/packages/ui/components/MermaidInit.tsx +24 -0
  142. package/packages/ui/components/ProjectContentArea.tsx +186 -0
  143. package/packages/ui/components/ProjectList.tsx +136 -0
  144. package/packages/ui/components/ThinkingDrawer.tsx +377 -0
  145. package/packages/ui/components/ThinkingPanel.tsx +63 -0
  146. package/packages/ui/components/TriggerSettings.tsx +185 -0
  147. package/packages/ui/components/VersionSelector.tsx +132 -0
  148. package/packages/ui/lib/db.ts +521 -0
  149. package/packages/ui/next-env.d.ts +5 -0
  150. package/packages/ui/next.config.js +4 -0
  151. package/packages/ui/package.json +32 -0
  152. package/packages/ui/postcss.config.js +6 -0
  153. package/packages/ui/public/logo.png +0 -0
  154. package/packages/ui/tailwind.config.ts +32 -0
  155. 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,2 @@
1
+ export declare function stop(): Promise<void>;
2
+ //# sourceMappingURL=stop.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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
+ }